通过TeamViewer Assist AR iOS的移动软件开发工具包(SDK),你可以利用Assist AR 会议的全部功能。通过将SDK嵌入到您自己的移动应用程序中,为优化客户服务提供最佳的基于AR的远程协助体验。
该SDK使您能够与您客户的设备进行安全和符合GDPR的连接。
本文适用于所有TeamViewer Assist AR 用户。
先决条件
- iOS 15.4 或以上版本
- 一个现有的TeamViewer 账户
如果你没有一个TeamViewer 帐户,请按照以下步骤创建一个。
- 进入https://login.teamviewer.com/,点击 注册。
- 完成创建账户的步骤,并验证您的电子邮件地址。
生成一个API密钥
1. 使用你的TeamViewer 账户在 TeamViewer Remote 用户端或者 https://web.teamviewer.com/ 登录。
2. 点击管理设置
3. 在 身份验证 的类别下选择 应用程序和标记
4. 点击 配置文件设置
5. 在 创建应用程序或标记 的选项下点击 创建移动 SDK 。
6. 输入名称,并添加一个简短的描述(可选)。
7. 在 移动SDK 系统 选项中,选择 iOS
8. 点击 保存
移动 SDK 令牌已生成且展示在 应用程序和标记 页面
9. 点击三点菜单,将此令牌复制到你的剪贴板上并粘贴到一个安全的地方。
重要提示:请勿与任何人分享此信物。
安装 TeamViewer 移动 SDK
你可以通过 Swift Package Manager(SPM)安装 TeamViewer SDK,或按照以下步骤手动安装。
- 通过 Swift Package Manager 安装 TeamViewer SDK
- 手动安装 TeamViewer SDK
你可以按照以下步骤,将 TeamViewer SDK 作为 SPM 添加到任意项目中:
1. 打开项目并点击 软件包依赖项。
2. 点击左下角的 加号图标。
3. 在搜索栏中输入 SPM 包的 GitHub 链接。TeamViewer-AR-iOS SPM 包将显示在搜索结果中:
4. 点击“添加包”。
5. 选择要将此包添加为依赖项的目标。
6. 点击“添加软件包”进行确认。
7. TeamViewer SDK 将作为依赖项添加到项目中。
8. 该软件包还将添加到目标位置(在步骤 5 中选择):
9. 如果在步骤 5 中未将软件包添加到目标,您可以单击之前所示的加号图标,然后选择“添加软件包依赖项”来添加 SPM 软件包。
这次,它将出现在“最近使用”列表中(如步骤 3 所示):
该 SDK 适用于拥有 Assist AR Professional 许可证的客户,由 TeamViewer 支持团队分发。
1. 下载 .zip 文件,解压缩,并将所有包含的 xcframework 文件夹复制到您的项目文件夹中。
注意:该 SDK 以通用 XCFramework 的形式分发,同时包含 iOS arm64 和模拟器 x86 架构。我们目前不支持 Apple Silicon 或 Mac Catalyst 架构。此外,该 SDK 还可以通过 Swift Package Manager (SPM) 进行分发。
2. 将 TVLocalizations 和 TeamViewerSDK 框架链接到您的项目中。
3. 确保已选中“嵌入和签名”选项。
4. 根据您的实现,您可能还需要链接到 ARKit 和 CallKit。
5. 仅当您计划支持 CallKit 时:链接到 CallKit。
设置你的XCode项目
TeamViewer SDK在远程支持会话中使用摄像头和麦克风。
在Info.Plist文件中添加以下键。
- NSMicrophoneUsageDescription
- NSCameraUsageDescription
如果你不添加这些键,当SDK试图访问麦克风或摄像头时,iOS将终止应用程序。
使用TeamViewer SDK
重要提示:SDK是一个单一的实例类。你不能直接创建一个。你应该访问共享实例。
1) 使用您在先决条件部分获得的API密钥初始化SDK实例。
2) 设置一个符合TeamViewerSDKDelegate协议的委托。
这确保你能够对在你的TeamViewer 连接有效期内发生的事件作出反应。
3) 连接到一个会话代码
共享SDK提供了一种方法来建立与会话代码的连接。这个会话代码可以是两种类型。
- 远程支持或
- Assist AR
4) 在你的TeamViewer 客户端或通过TeamViewer REST API创建会话代码。
方法connectToSessionCode返回一个TeamViewer session。
重要提示: 你有责任保持这个变量的有效性,也有责任释放这个变量。如果不这样做,可能会导致会话用户界面在远程会话结束后仍然保持活力。
重要提示: 一旦SDK连接到一个会话代码,它就会进入一个等待状态,你会通过委托方法 handleSessionCodeOnline得到状态变化的通知。
在这一点上,你不应该允许用户连接到一个不同的会话代码。只允许允许用户离开当前的连接。
在支持方,会话代码将显示为在线,允许客户端与该会话代码建立连接。
对呼入的连接作出反应
SDK提供了代表方法来对传入的连接事件做出反应。
一旦连接在TeamViewer ,SDK就会通过委托方法 handleConnectionRequestWithAuthenticationData得到关于这个连接尝试的通知。
在认证数据参数上有支持者的名字,传入连接的类型(ScreenShare或Assist AR )和一个允许或拒绝传入连接的回调函数。
如果接收到的连接被接受,就会建立相应的TeamViewer 连接。
- 对于ScreenShare连接,会向用户显示一个关于麦克风和屏幕共享的提示。
你的应用程序的用户界面是使用重放套件抓取的,用户和支持者之间有双向的VoIP通信。
- 对于Assist AR 连接,显示了摄像头和麦克风访问的系统权限。如果用户允许,AR会话就开始了。用户和支持方之间有双向的VoIP通信。
- 应实现委托方法 handleConnectionRequestAbort,以便在远程用户取消连接请求时获得通知。你有责任清除显示给用户的任何提示,或取消任何CallKit的来电通知。
对可选的SDK事件做出反应
- handleSupporterConnected: 这个方法在支持者开始会话时被调用,当用户在本地开始会话时也会被调用。
- handleSupporterDisconnected: 这个方法在支持者结束会话时被调用,当用户在本地结束会话时也会被调用。
提示:你应该清理对会话的引用,因为这时会话被认为不再有效。
- handleError:如果用于建立连接的会话代码或API令牌无效,该方法将被调用。
提示: 你应该清理当前会话使用的资源,因为会话本身被认为是无效的。
对可选的会议事件做出反应
- handleSessionError:当会话中发生错误时,这个功能会被调用。例如,一个功能被请求,但客户端和服务器之间的兼容性没有得到满足。
提示: 这个错误只是信息性的。你可以把它写到日志文件中。
关于CallKit支持的说明
如果你的应用程序支持CallKit。
- 向TeamViewer SDK提供有关您的呼叫的唯一标识符的信息。
- TeamViewer 询问系统是否有一个正在进行的呼叫,如果是这样的话,就不尝试建立VoIP连接。
- 告诉TeamViewer ,当前的呼叫是你的,这样我们就可以接管音频管道并开始VoIP传输。
- 调用setupCallUUID方法。
- 通过调用clearCallUUID 方法告诉SDK你的呼叫已经结束。
启用背景模式
确保你在Info.plist文件中至少启用了这些背景模式之一。
- 音频,
- AirPlay 或
- IP语音背景模式。
重要的是:如果不这样做,将导致应用程序在活动的TeamViewer 会话中被放到后台后仅几秒钟就被暂停。
音频设置
移动SDK与默认的AVAudioSession配置值一起工作。
- 如果你想覆盖这些值,以支持蓝牙、Airplay混合、使用扬声器等,确保在建立会话之前改变这些值。如果你的应用程序对其他应用程序进行静音,建议在接受连接之前配置音频会话的时间点。
- 如果你的应用程序音频与其他应用程序混合,你可以在应用程序启动时配置音频选项。
禁用VoIP
如果您想使用其他方式建立语音通信,您可以在建立连接之前通过设置共享SDK实例的选项来完全禁用VoIP功能。
更多信息请参考 TVSDKOptions 文档
Class 文件
所有的公共头衔文件都有记录。关于每个类的详细信息,请参考XCode生成的QuickHelp内容('⌥'+点击常量或变量名)。