配置SDK
配置SDK
Zend亚博esk移动sdk为许多可以在代码中定制的特性提供了默认的开箱即用的行为。
使用SDK配置
每一个SDKViewController
类具有相应的类实现配置
协议。
每一个配置
类的外观或行为,可通过设置属性来配置ViewController
.
你通过一个配置
到SDKbuildUI
方法的实例,该方法返回ui
显示在屏幕上。
定制bot标签字符串
在统一SDK中,您可以自定义用于“Answer Bot”标签的字符串。这个机器人标签用于所有产品SDK的引擎(应答机器人、聊天和支持)。不能删除跟在Bot标签后面的带边框的“Bot”标签。
下面是一个简单的例子,它定制了统一SDK中用于“Answer Bot”标签的字符串。
斯威夫特
//构造一个MessagingConfiguration
let messagingConfiguration = messagingConfiguration ()
messagingConfiguration.name = "我的机器人名"
//显示messagingViewController
{做
let answerBotEngine = try answerBotEngine .engine()
let viewController = try message .instance。buildUI(引擎:[answerBotEngine],
配置:[messagingConfiguration])
self.navigationController ?。pushViewController(viewController, animated: true)
} catch {
//执行错误操作
}
objective - c
//构造一个MessagingConfiguration
ZDKMessagingConfiguration*messagingConfiguration=[ZDKMessagingConfiguration新];
messagingConfiguration.的名字=@“我的机器人名字”;
//显示messagingViewController
NSError*错误=零;
ZDKAnswerBotEngine*answerBotEngine=[ZDKAnswerBotEngine engineAndReturnError:&错误];
ui*viewController=[[ZDKMessaging实例]buildUIWithEngines:@[(id<ZDKEngine>)answerBotEngine]
配置:@[messagingConfiguration]
错误:&错误];
[自我.导航控制器pushViewController:viewController动画:是的];
请注意虽然Answer Bot是Zendesk的特定产品,但字符串“An亚博swer Bot”默认用于统一SDK中显示的所有自动消息,即使活动引擎不是Answer Bot(例如,支持引擎显示自动消息,提示用户输入电子邮件地址,或确认何时已创建票据)。无论您是否订阅了Answer Bot产品,情况都是如此。
一屏多配置
每一个buildUI
的数组为参数配置
配置。使用此特性可以同时配置多个屏幕或特性。下面的例子展示了如何自定义“Answer Bot”标签字符串,以及为支持引擎创建的任何请求设置自定义主题和标签:
斯威夫特
//构造一个MessagingConfiguration
let messagingConfiguration = messagingConfiguration ()
messagingConfiguration.name = "我的机器人名"
//构造一个RequestUiConfiguration
let requestConfiguration = RequestUiConfiguration()
requestConfiguration。标签=["tag1", "tag2"]
requestConfiguration。主题="Custom subject"
//显示messagingViewController
{做
let answerBotEngine = try answerBotEngine .engine()
let viewController = try message .instance。buildUI(引擎:[answerBotEngine],
配置:[messagingConfiguration, requestConfiguration])
self.navigationController ?。pushViewController(viewController, animated: true)
} catch {
//执行错误操作
}
objective - c
//构造一个MessagingConfiguration
ZDKMessagingConfiguration*messagingConfiguration=[ZDKMessagingConfiguration新];
messagingConfiguration.的名字=@“我的机器人名字”;
//构造一个RequestUiConfuration
ZDKRequestUiConfiguration*requestConfiguration=[ZDKRequestUiConfiguration新];
requestConfiguration.标签=@[@“标签1”,@“标签2”];
requestConfiguration.主题=@“自定义主题”;
//显示messagingViewController
NSError*错误=零;
ZDKSupportEngine*supportEngine=[ZDKSupportEngine engineAndReturnError:&错误];
ui*messagingViewController=[[ZDKMessaging实例]
buildUIWithEngines:@[supportEngine]
配置:@[messagingConfiguration,requestConfiguration]
错误:&错误];
详情请参见运行Answer Bot引擎而且运行支持引擎.关于聊天引擎,请直接参考聊天SDK v2 -入门.
有关MessagingActivity的信息,请参见使用多个引擎的MessagingActivity流看起来是什么样的.
多屏多配置
还可以使用以下模式配置多个SDKui
在一次。例如,在使用Support SDK时,您可以配置Help Center屏幕和Article屏幕,以使用Answer Bot和Support引擎打开Messaging屏幕。下面是如何一次配置所有这些:
斯威夫特
//构造引擎
守卫let answerBotEngine =试试?AnswerBotEngine.engine (),
let supportEngine = try?supportenengine .engine() else {
//做某事
}
//构造一个HelpCenterUiConfiguration
let helpCenterConfiguration = HelpCenterUiConfiguration()
helpCenterConfiguration。引擎= [answerBotEngine, supportEngine]
helpCenterConfiguration。labels = ["iOS"]
//构造一个ArticleUiConfiguration
let article econfiguration = ArticleUiConfiguration()
articleConfiguration。引擎= [answerBotEngine, supportEngine]
//构造一个MessagingConfiguration
let messagingConfiguration = messagingConfiguration ()
messagingConfiguration.name = "我的机器人名"
//构造一个RequestUiConfiguration
let requestConfiguration = RequestUiConfiguration()
requestConfiguration。标签=["tag1", "tag2"]
requestConfiguration。主题="Custom subject"
//显示helpCenterViewController
let helpCenter = HelpCenterUi。buildhelpcenterovervieui (withConfigs: [helpCenterConfiguration, articleeconfiguration, messagingConfiguration, requestConfiguration])
self.navigationController ?。pushViewController(helpCenter, animated: true)
objective - c
//构造引擎
NSError*错误=零;
ZDKSupportEngine*supportEngine=[ZDKSupportEngine engineAndReturnError:&错误];
ZDKAnswerBotEngine*answerBotEngine=[ZDKAnswerBotEngine engineAndReturnError:&错误];
//构造一个HelpCenterUiConfiguration
ZDKHelpCenterUiConfiguration*helpCenterConfiguration=[ZDKHelpCenterUiConfiguration新];
[helpCenterConfiguration setObjcEngines:@[answerBotEngine,supportEngine]];
[helpCenterConfiguration setLabels:@[@“iOS”]];
//构造一个ArticleUiConfiguration
ZDKArticleUiConfiguration*articleConfiguration=[ZDKArticleUiConfiguration新];
[articleConfiguration setObjcEngines:@[answerBotEngine,supportEngine]];
//构造一个MessagingConfiguration
ZDKMessagingConfiguration*messagingConfiguration=[ZDKMessagingConfiguration新];
messagingConfiguration.的名字=@“我的机器人名字”;
//构造一个RequestUiConfuration
ZDKRequestUiConfiguration*requestConfiguration=[ZDKRequestUiConfiguration新];
requestConfiguration.标签=@[@“标签1”,@“标签2”];
requestConfiguration.主题=@“自定义主题”;
//显示helpCenterViewController
ui*helpCenter=[ZDKHelpCenterUi buildHelpCenterOverviewUiWithConfigs:@[helpCenterConfiguration,articleConfiguration,messagingConfiguration,requestConfiguration]];
[自我.导航控制器pushViewController:helpCenter动画:是的];
自定义URL处理
您可以自定义统一SDK与URL处理相关的行为messagingShouldOpenURL
委托方法,如下面的代码示例所示。
斯威夫特
为设置委托
消息传递
.message .instance.delegate = self
在委托方法中处理URL
func message (_ messaging: messaging, shouldOpenURL url: url) -> Bool
.func message (_ messaging: messaging, shouldOpenURL url: url) -> Bool {
//默认情况下,对话中共享的链接在Safari中打开
真正的
}
objective - c
为设置委托
消息传递
.[ZDKMessaging实例].委托=自我;
在委托方法中处理URL
- (BOOL)messaging:(ZDKMessaging *)messaging shouldOpenURL:(NSURL *)url
.-(保龄球)消息传递:(ZDKMessaging*)消息传递shouldOpenURL:(NSURL*)url{
//默认情况下,对话中共享的链接在Safari中打开
返回是的;
}
观察UI生命周期事件
您可以按照下面示例中的步骤观察UI生命周期事件。下面的示例将显示可能发生的事件的完整列表。
斯威夫特
为设置委托
消息传递
.message .instance.delegate = self
在委托方法中处理事件
func message (_ messaging: messaging, didPerformEvent event: MessagingUIEvent, context: Any?)
.扩展ZendeskC亚博hat: MessagingDelegate {
func message (_ messaging: messaging, didPerformEvent event: MessagingUIEvent, context: Any?) {
开关事件{
案例.viewDidLoad:
打破
@unknown默认值:
打破
}
}
}
objective - c
为设置委托
消息传递
.[ZDKMessaging实例].委托=自我
在委托方法中处理事件
- (void)messaging:(ZDKMessaging * _Nonnull)messaging didPerformEvent:(enum ZDKMessagingUIEvent)event context:(id _Nullable)context
.-(无效)消息传递:(ZDKMessaging*_Nonnull)消息传递
didPerformEvent:(枚举ZDKMessagingUIEvent)事件
上下文:(id _Nullable)上下文{
开关(事件){
情况下ZDKMessagingUIEventViewDidLoad:
打破;
默认的:
打破;
}
}
下表列出了所有可以观察到的生命周期事件。
事件 | 描述 |
---|---|
.viewDidLoad |
视图已经加载 |
.viewWillAppear |
视图就会出现 |
.viewDidAppear |
视图确实出现了 |
.viewWillDisappear |
视图就会消失 |
.viewDidDisappear |
景色确实消失了 |
.viewDidLayoutSubviews |
视图已经布局了子视图 |
.viewControllerDidClose |
消息传递视图控制器已关闭 |