Skip to content

iOS SDK

微议Pro iOS UI SDK 用于在原生 App 中集成音视频会议能力,提供会议加入、视频管理、浮动窗口等功能。核心入口类为 WeiYiProSDK(Objective-C)。

使用前

  1. 将 SDK 框架集成到 Xcode 工程(具体 Pod / Framework 包请联系微议Pro 技术支持获取)。
  2. Info.plist 中配置摄像头、麦克风等必要权限说明。
  3. 调用 server: 设置 Web 服务器地址后再加入会议。
  4. setAutoOpenMicrophone:setAutoOpenUserVideos:server: 必须在 joinMeeting 之前调用。

枚举类型

DRole

用户角色枚举,标识用户在会议中的角色。

名称说明
0dRoleNomal普通用户
1dRoleReserve保留角色(内部使用,会自动降级为普通用户)
2dRoleSpeaker主讲用户
3dRoleHider隐藏用户

核心类: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)enable
  • enableYES 自动打开,NO 手动控制
  • 默认值YES
  • 必须在 joinMeeting 前调用

示例:

objective-c
[[WeiYiProSDK sharedWeiYiProSDK] setAutoOpenMicrophone:NO];

设置是否自动打开用户视频

objective-c
- (void)setAutoOpenUserVideos:(bool)enable
  • enableYES 自动打开,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

参数:

参数类型说明
vcid当前视图控制器(UIViewController
uidNSString*用户唯一标识
nickNSString*用户昵称
midNSString*会议号 / 会议序列号
sigNSString*签名验证信息,无则传 @""
roleDRole用户角色

说明:

  • 同一用户多次加入同一会议时,将直接返回会议界面
  • 不同用户切换时,会先退出当前会议再加入新会议
  • 角色参数异常时自动降级为普通用户
  • 会议设置了密码时,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(内部网络请求工具)

注意事项

  1. 调用顺序server:setAutoOpenMicrophone:setAutoOpenUserVideos: 必须在 joinMeeting 之前调用。
  2. 角色限制dRoleReserve 会被自动降级为 dRoleNomal
  3. 签名验证:不需要签名时,signature 传空字符串 @""
  4. 用户标识uid 须为唯一标识,建议使用 UUID 或用户账号。
  5. 视图控制器vc 用于导航会议界面,须传入当前有效的视图控制器。

版本信息

项目版本
SDK1.0
文档1.0
初始发布2020-12-30

相关服务端接口见 Web 服务器 API。SDK 包与 CocoaPods / Framework 集成细节请联系微议Pro 技术支持。

微议Pro SDK 开发者文档