Voxeet UXKit iOS
Swift UXKit 是基于 iOS SDK 的框架。
安装 UXKit
请遵循以下说明来安装 Swift UXKit。
要求
在安装 Swift UXKit 之前,请确保满足最低的硬件和软件要求。
- 操作系统:iOS 12.0 及以上
- 集成开发环境:Xcode 13+
- 语言:Swift 5.5.2
- 支持的架构:arm64, x86_64
在开始之前
在安装之前,获取您的消费者密钥
和消费者密钥
。
- 选择Dolby.io页面右上角的
登录
链接。使用您的电子邮件和密码登录。 - 点击网站右上角的
仪表板
链接。 - 从左侧菜单中的
应用
分类中选择您的应用。 - 从应用于应用下的下拉菜单中选择
API密钥
分类。 - 在
通信API
部分,您可以访问您的消费者密钥
和消费者密钥
。
方法
- 打开Xcode,转到
目标设置
▸能力
▸后台模式
以设置项目和启用适当的后台模式。 - 启用
音频、AirPlay和画中画
以及VoIP
选项。
注意:要启用带有CallKit的VoIP推送通知,请启用推送通知并将您的VoIP推送证书上传到开发者门户。有关更多信息,请阅读此管理推送通知手册页面。
-
将以下密钥添加到
Info.plist
文件中,以启用所需的权限- 隐私:麦克风使用描述
- 隐私:相机使用描述
-
使用Swift包管理器、Carthage、CocoaPods或手动安装SDK。
使用Swift包管理器安装SDK
Swift包管理器是一个用于自动化下载、编译和链接依赖项过程的工具。Swift包管理器支持UXKit 1.6.5和更高版本。
- 选择
文件
▸添加包…
以添加包依赖项。 - 在打开的窗口中,找到搜索框并指定SDK仓库的URL:https://github.com/voxeet/voxeet-uxkit-ios.git
- 从结果列表中选择VoxeetUXKit。
- 检查VoxeetUXKit包是否列在“包依赖项”标签页中。
- 检查“框架、库和嵌入内容”分类是否包含VoxeetUXKit库。
有关更多信息,请参阅Apple开发者文档中的附加说明。
使用Carthage安装SDK
- 使用以下Homebrew命令安装Carthage
brew update
brew install carthage
- 在
Cartfile
中指定UXKit版本,将其集成到Xcode项目中
github "voxeet/voxeet-uxkit-ios" ~> 1.0
- 运行
carthage update --use-xcframeworks --platform iOS
构建框架,并将VoxeetUXKit.xcframework
、VoxeetSDK.xcframework
、dvclient.xcframework
、dvdnr.xcframework
、WebRTC.xcframework
和Kingfisher.xcframework
拖放到Xcode项目的嵌入的二进制文件
类别。
注意:有关使用Carthage构建特定平台捆绑包的更多信息,请参阅Carthage文档。
使用CocoaPods安装SDK
- 使用以下命令安装CocoaPods
sudo gem install cocoapods
- 在
Podfile
中指定UXKit版本,将其集成到Xcode项目中
pod 'VoxeetUXKit', '~> 1.0'
- 运行
pod install
构建依赖项。
手动安装SDK
-
使用以下链接下载最新版本的UXKit和SDK压缩文件
-
解压下载的文件,并将框架拖放到Xcode项目中。
-
使用合适的目标选择
如有必要则复制项目
选项。在你的目标通用
选项卡中,将VoxeetUXKit.xcframework
、VoxeetSDK.xcframework
、dvclient.xcframework
、dvdnr.xcframework
和WebRTC.xcframework
添加到嵌入的二进制文件
类别。 -
从GitHub下载Kingfisher库,并手动安装框架或使用Carthage或CocoaPods进行安装。
安装完成后,检查Kingfisher库是否包含在库列表中。如果您是手动安装库或使用Carthage,请检查Xcode项目中“框架、库和嵌入内容”类别中是否有提及Kingfisher.xcframework
库。如果您使用CocoaPods安装库,请检查客户端xcworkspace中的“Pods”项目是否包含Kingfisher库。
配置UXKit
Swift UXKit提供了几个额外参数,允许进行额外配置。
- 使用
appearMaximized
参数来最大化或最小化会议。默认情况下,会议已最大化。如果您想要最小化会议,请将值更改为false。
VoxeetUXKit.shared.appearMaximized = true
- 使用
telecom
参数来更改应用行为。如果参数值设置为true,会议将类似于电话呼叫,参与者离开通话将触发通话结束。如果参数值设置为false,参与者可以在不结束通话的情况下离开通话。
VoxeetUXKit.shared.telecom = false
- 如果您想使用CallKit,可以配置默认的CallKit设置。CallKit提供默认的铃声和图像图标,您可以进行更改。默认情况下,SDK使用
CallKitSound.mp3
作为CallKit通知的铃声。如果您想使用不同的铃声,请将CallKitSound.mp3
文件替换为其他mp3文件。如果您想使用不同的图像图标,请将默认的IconMask.png
图像替换为另一张图片(40px x 40px)。
使用UXKit
以下步骤解释了如何初始化iOS SDK、打开会话以及创建和加入会议。如果您想了解更多关于使用iOS SDK的信息,请参阅入门部分或查看参考文档。
- 使用initialize方法初始化Voxeet SDK。
import VoxeetSDK
import VoxeetUXKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Voxeet SDK initialization.
VoxeetSDK.shared.initialize(consumerKey: "YOUR_CONSUMER_KEY", consumerSecret: "YOUR_CONSUMER_SECRET")
VoxeetUXKit.shared.initialize()
// Example of public variables to change the conference behavior.
VoxeetSDK.shared.pushNotification.push.type = .none
VoxeetSDK.shared.conference.defaultBuiltInSpeaker = false
VoxeetSDK.shared.conference.defaultVideo = false
VoxeetUXKit.shared.appearMaximized = true
VoxeetUXKit.shared.telecom = false
return true
}
}
注意:有关将Dolby.io通信客户端SDK集成到应用中的更多信息,请参阅参考文档或初始化文档。
- 打开一个新的会话。
let info = VTParticipantInfo(externalID: "1234", name: "Username", avatarURL: "https://www.gravatar.com/avatar/1234")
VoxeetSDK.shared.session.open(info: info) { error in }
注意:SDK邀请过程需要邀请者使用open方法以接收会议邀请。如果您使用CallKit,即使没有打开会话,您也可以接收会议邀请。
// Create a conference (with a custom conference alias).
let options = VTConferenceOptions()
options.alias = conferenceAlias
VoxeetSDK.shared.conference.create(options: options, success: { conference in
// Join the created conference.
let joinOptions = VTJoinOptions()
joinOptions.constraints.video = false
VoxeetSDK.shared.conference.join(conference: conference, options: joinOptions, success: { conference in
// Success
}, fail: { error in
// Error
})
}, fail: { error in
// Error
})
注意:关于加入会议的更多信息,请参阅 会议 文档。
- 调用 leave 方法来离开会议。
VoxeetSDK.shared.conference.leave { error in }
- 调用 close 方法来关闭当前会话。该方法将关闭 WebSocket 并不允许发送 VoIP 推送通知。
VoxeetSDK.shared.session.close { error in }
开源项目
Voxeet iOS SDK 和 UXKit 依赖于以下开源项目
- Kingfisher,提供支持缓存的异步图片下载。
- Starscream,一个符合 WebSocket (RFC 6455) 的客户端库。
- Alamofire,一个 HTTP 网络库。
- SwiftyJSON,用于处理 JSON 数据的工具。