开始

除了亚博Zendesk说话订阅时,SDK有以下要求:

  • iOS最低版本:10.0

Talk SDK 1.0.0及更新版本使用XCode 11.4+和Swift 5.2.2构建。

先决条件

获取初始化详细信息

初始化Talk SDK需要以下信息:

  • Zendesk支持实例的URL亚博
  • 你的应用在Zendesk支持的id亚博
  • Zendesk支持中应用程序的客户端id亚博

这些详细信息可以在管理中心的通道页面上找到。

如果您可以访问管理中心,请登录并转到渠道>经典>移动SDK.如果您没有管理权限,请让Zendesk管理员为您获取信息。亚博

集成Talk SDK

按照以下步骤在你的应用程序中集成Talk SDK:

  1. 将Talk SDK添加到项目中
  2. 初始化SDK
  3. 设置匿名身份
  4. 创建一个Talk SDK实例
  5. 检查代理是否可用
  6. 打个电话

本页上的代码片段使用SDK附带的内置UI展示了一个简单的轻触式集成。您可以决定使用API并构建自己的UI。或者,您也可以使用内置UI并自定义其外观。详情请参见使用SDK和您自己的UI自定义外观

将Talk SDK添加到项目中

您可以使用CocoaPods或Carthage依赖管理器将Talk SDK添加到项目中。如果您愿意,还可以手动将Talk SDK添加到项目中。详细信息请参见添加Talk SDK

更新Info.plist中的用法描述

Talk SDK需要麦克风接入才能进行语音通话。应用程序必须描述请求此权限的目的,并在访问请求中将其呈现给用户。

如果你的应用程序还没有请求这些功能的权限,更新你的Info.plist的使用说明的文件NSMicrophoneUsageDescription

了解更多关于Apple中的Cocoa key开发人员文档

初始化SDK

初始化应用程序的SDKAppDelegate当应用程序启动时。

  1. 将以下框架导入AppDelegate文件在你的项目:

    斯威夫特

                   
    进口Zende亚博skCoreSDK进口TalkSDK

    objective - c

                   
    进口<亚博ZendeskCoreSDK/亚博ZendeskCoreSDKh>进口<TalkSDK/TalkSDKh>
  2. 将以下初始化代码粘贴到应用:didFinishLaunchingWithOptions:的方法AppDelegate

    斯威夫特

                   
    亚博Zendesk。初始化(appId: "appId", clientId: "clientId", zendesk亚博Url: "url")

    objective - c

                   
    ZDK亚博Zendesk initializeWithAppId“appId”clientId“clientId”亚博zendeskUrl“url”
  3. 将参数占位符替换为初始化详细信息。

设置匿名身份

要设置匿名标识,请在与SDK交互之前添加以下语句。我们建议把它放在亚博Zendesk.initialize (appId: clientId: zendeskUrl:)调用。

斯威夫特

             
let identity = identity . createanonymous ()亚博Zendesk.instance ? .setIdentity(身份)

objective - c

             
id<ZDKObjCIdentity>userIdentityZDKObjCAnonymous allocinitWithName空的邮件ZDK亚博Zendesk实例setIdentityuserIdentity

看到匿名身份在移动sdk中是如何工作的有关匿名标识生命周期的详细信息。

提供额外的用户上下文

设置用户电子邮件和名称将通过向代理提供用户上下文来改善客户的用户体验。

斯威夫特

             
let identity = identity。createAnonymous(名称:“最终用户”,电子邮件:“(电子邮件保护)”)亚博Zendesk.instance ? .setIdentity(身份)

objective - c

             
id<ZDKObjCIdentity>userIdentityZDKObjCAnonymous allocinitWithName@“最终用户”电子邮件@”(电子邮件保护)ZDK亚博Zendesk实例setIdentityuserIdentity

注意:与其他Zendesk SD亚博K不同,Talk SDK不支持JWT身份验证。尝试使用JWT身份验证将导致失败。JWT身份验证将包含在未来的版本中。

创建一个Talk SDK实例

要使用Talk SDK API,首先需要创建一个SDK实例。创建SDK之后的实例初始化设置匿名身份

斯威夫特

             
let talk = talk 亚博(zendesk: zendesk .instance!)

objective - c

             
ZDKTalk说话ZDKTalk allocinitWith亚博ZendeskZDK亚博Zendesk实例

我们建议存储已创建的说话实例,其生命周期范围相对于应用程序中SDK特性的预期使用情况。示例:在进入设置时创建实例,可以从该实例调用支持代理。

检查代理的可用性

使用lineStatus (digitalLine:完成)方法,以确定是否有任何代理可用于Talk数字线路。建议在没有座席时隐藏呼叫按钮,以提高用户体验。

斯威夫特

             
说话。lineStatus(digitalLine: "digitalLineNickname"){[弱自我]结果在let isAgentAvailable: Bool切换结果{case .success(let lineStatus):isAgentAvailable = lineStatus.agentAvailable案例.failure:isAgentAvailable = false自我? .callBarButtonItem。isEnabled = isAgentAvailable

objective - c

             
__weaktypeof自我weakSelf自我讨论lineStatusWithDigitalLine@“digitalLineNickname”完成id<LineStatus>_Nullable lineStatusNSError_Nullable错误BOOL isAgentAvailable没有如果lineStatus! =isAgentAvailablelineStatusagentAvailableweakSelfcallButton启用isAgentAvailable

打电话

Talk SDK提供了一个内置的UI流程,用于检查所需的权限和调用代理。你可以用下面的语句运行它:

斯威夫特

             
说话。startCall(:“digitalLineNickname”)

objective - c

             
讨论startCallToDigitalLine@“digitalLineNickname”

SDK检查麦克风权限以及数字线路是否需要录音同意。所呈现的视图允许用户授予权限,并在需要时给予同意。完成该步骤后,或者不需要用户输入,则进入通话界面,通话成功。

需要的不仅仅是开箱即用的UI?

要自定义内置权限屏幕或呼叫屏幕的外观,请参见自定义外观

如果您需要完全不同的内容,并且希望构建和使用自己的权限或调用屏幕,请参见使用SDK和您自己的UI