iOS SDK
微议Pro iOS UI SDK 用于在原生 App 中集成音视频会议能力,提供会议加入、视频管理、浮动窗口等功能。核心入口类为 WeiYiProSDK(Objective-C)。
使用前
- 将 SDK 框架集成到 Xcode 工程(具体 Pod / Framework 包请联系微议Pro 技术支持获取)。
- 在
Info.plist中配置摄像头、麦克风等必要权限说明。 - 调用
server:设置 Web 服务器地址后再加入会议。 setAutoOpenMicrophone:、setAutoOpenUserVideos:、server:必须在joinMeeting之前调用。
枚举类型
DRole
用户角色枚举,标识用户在会议中的角色。
| 值 | 名称 | 说明 |
|---|---|---|
| 0 | dRoleNomal | 普通用户 |
| 1 | dRoleReserve | 保留角色(内部使用,会自动降级为普通用户) |
| 2 | dRoleSpeaker | 主讲用户 |
| 3 | dRoleHider | 隐藏用户 |
核心类:WeiYiProSDK
SDK 单例类,提供会议管理相关能力。
获取单例
objective-c
+ (instancetype)sharedWeiYiProSDK示例:
objective-c
WeiYiProSDK *sdk = [WeiYiProSDK sharedWeiYiProSDK];设置服务器地址
objective-c
- (void)server:(NSString*)url参数:
url:服务器地址
说明:
- 支持
http/https协议前缀 - 自动处理路径拼接,最终格式为
{协议}://{地址}/ClientAPI/ - 应在加入会议前调用
示例:
objective-c
// 完整 URL
[[WeiYiProSDK sharedWeiYiProSDK] server:@"https://api.example.com"];
// 不带协议
[[WeiYiProSDK sharedWeiYiProSDK] server:@"api.example.com"];
// 带尾部斜杠
[[WeiYiProSDK sharedWeiYiProSDK] server:@"https://api.example.com/"];设置是否自动打开麦克风
objective-c
- (void)setAutoOpenMicrophone:(bool)enableenable:YES自动打开,NO手动控制- 默认值:
YES - 必须在
joinMeeting前调用
示例:
objective-c
[[WeiYiProSDK sharedWeiYiProSDK] setAutoOpenMicrophone:NO];设置是否自动打开用户视频
objective-c
- (void)setAutoOpenUserVideos:(bool)enableenable:YES自动打开,NO手动控制- 默认值:
YES - 必须在
joinMeeting前调用
示例:
objective-c
[[WeiYiProSDK sharedWeiYiProSDK] setAutoOpenUserVideos:NO];加入会议
objective-c
- (void)joinMeeting:(id)vc
userId:(NSString*)uid
nickName:(NSString*)nick
meetingId:(NSString*)mid
signature:(NSString*)sig
role:(DRole)role参数:
| 参数 | 类型 | 说明 |
|---|---|---|
vc | id | 当前视图控制器(UIViewController) |
uid | NSString* | 用户唯一标识 |
nick | NSString* | 用户昵称 |
mid | NSString* | 会议号 / 会议序列号 |
sig | NSString* | 签名验证信息,无则传 @"" |
role | DRole | 用户角色 |
说明:
- 同一用户多次加入同一会议时,将直接返回会议界面
- 不同用户切换时,会先退出当前会议再加入新会议
- 角色参数异常时自动降级为普通用户
- 会议设置了密码时,SDK 会自动弹出密码输入框
示例:
objective-c
UIViewController *currentVC = self;
// 普通用户加入
[[WeiYiProSDK sharedWeiYiProSDK] joinMeeting:currentVC
userId:@"user123"
nickName:@"张三"
meetingId:@"meeting456"
signature:@""
role:dRoleNomal];
// 主讲用户加入
[[WeiYiProSDK sharedWeiYiProSDK] joinMeeting:currentVC
userId:@"speaker001"
nickName:@"李老师"
meetingId:@"meeting789"
signature:@""
role:dRoleSpeaker];功能特性
设备标识管理
SDK 自动生成并管理设备标识(UUID),存储在 UserDefaults 中,无需手动管理。
浮动窗口
- 窗口大小:103 × 143
- 窗口级别:
UIWindowLevelStatusBar - 支持拖拽移动
- 点击浮动窗口可返回会议界面
其他内置能力
- 网络类型配置:存储在
UserDefaults - 键盘管理:自动启用 IQKeyboardManager
- 屏幕常亮:会议期间自动禁用自动锁屏
URL Scheme 支持
SDK 支持通过 URL Scheme 拉起会议。
格式
weiyipro://{服务器地址}/?serial={会议号}&sig={签名}示例
weiyipro://api.example.com/?serial=meeting123&sig=处理方式
在 AppDelegate 中调用:
objective-c
- (BOOL)applicationOpenURL:(NSString *)url使用流程
基本集成
objective-c
// 1. 获取 SDK 单例
WeiYiProSDK *sdk = [WeiYiProSDK sharedWeiYiProSDK];
// 2. 设置服务器地址
[sdk server:@"https://your-server.com"];
// 3. 配置麦克风与视频(可选)
[sdk setAutoOpenMicrophone:NO];
[sdk setAutoOpenUserVideos:YES];
// 4. 加入会议
[sdk joinMeeting:self
userId:@"user123"
nickName:@"用户昵称"
meetingId:@"meeting456"
signature:@""
role:dRoleNomal];完整示例
objective-c
#import "WeiYiProSDK.h"
@implementation MyViewController
- (void)joinConference {
WeiYiProSDK *sdk = [WeiYiProSDK sharedWeiYiProSDK];
[sdk server:@"https://meeting.example.com"];
[sdk setAutoOpenMicrophone:YES];
[sdk setAutoOpenUserVideos:NO];
[sdk joinMeeting:self
userId:[[NSUserDefaults standardUserDefaults] objectForKey:@"userId"]
nickName:@"John Doe"
meetingId:@"CONF-2024-001"
signature:@""
role:dRoleSpeaker];
}
@end生命周期方法
| 方法 | 说明 |
|---|---|
- (void)applicationDidEnterBackground | 应用进入后台 |
- (void)applicationDidBecomeActive | 应用变为活跃状态 |
在 AppDelegate 相应回调中转发给 SDK 即可。
UserDefaults 存储项
| Key | 说明 |
|---|---|
deviceID | 设备唯一标识 |
netWorkKind | 网络类型 |
userId | 用户 ID |
nickName | 用户昵称 |
firstname | 用户名 |
mediaServer | 媒体服务器地址 |
docServer | 文档服务器地址 |
hasLogin | 登录状态 |
依赖框架
- Foundation.framework
- UIKit.framework
- IQKeyboardManager(第三方键盘管理)
- BysHttpTool(内部网络请求工具)
注意事项
- 调用顺序:
server:、setAutoOpenMicrophone:、setAutoOpenUserVideos:必须在joinMeeting之前调用。 - 角色限制:
dRoleReserve会被自动降级为dRoleNomal。 - 签名验证:不需要签名时,
signature传空字符串@""。 - 用户标识:
uid须为唯一标识,建议使用 UUID 或用户账号。 - 视图控制器:
vc用于导航会议界面,须传入当前有效的视图控制器。
版本信息
| 项目 | 版本 |
|---|---|
| SDK | 1.0 |
| 文档 | 1.0 |
| 初始发布 | 2020-12-30 |
相关服务端接口见 Web 服务器 API。SDK 包与 CocoaPods / Framework 集成细节请联系微议Pro 技术支持。
