增加门票

您的组织与客户的对话显示为入场券亚博Zendesk支持.Support SDK允许客户使用您的应用程序创建门票,更新现有门票,或者查看客户服务团队何时更新了他们的门票。

所有四个支持SDK控制器,包括帮助中心控制器,让用户创建票据。以下控制器还可以让用户查看和更新一个或多个门票,并让你在应用程序中对门票有更多的控制权:

  • RequestController
  • RequestListController

请注意:在Zendesk中,票也亚博被称为支持请求,或简单地称为请求。

RequestController让你:

  • 显示并配置一个票务屏幕,用户可以使用该屏幕向客户服务团队提交票务
  • 创建一个ui稍后显示票务屏幕
  • 显示用户的一张票
  • 配置其他SDK控制器的票据界面

RequestListController让您显示用户的门票列表。用户可以查看和更新他们的票证。

如果你需要构建自己的票务ui, SDK也有一个API提供者,可以让你在Zendesk Support中访问票务。亚博看到要求供应商在API提供者引用中。

本节涵盖的主题:

先决条件

允许用户创建票据没有先决条件。

要让用户查看和更新票证,必须满足以下前提条件:

用户界面概述

的默认票据形式RequestController如下所示:

票的观点

的默认票据列表RequestListController如下所示:

票列表

当代理更新了票据时,票据旁边会出现一个项目符号提醒用户。

点击列表中的一个票证将显示票证对话。用户可以在对话中添加评论。

您可以更改ui的外观和感觉。看到自定义外观

显示票务屏幕

使用buildRequestUi(配置:[ZDKConfiguration])方法RequestUi.例子:

斯威夫特

             
let requestScreen = RequestUi。buildRequestUi (: [])self.navigationController ?。pushViewController(requestScreen, animated: true)

objective - c

             
uirequestScreenZDKRequestUi buildRequestUiWith@自我导航控制器pushViewControllerrequestScreen动画是的

如果您愿意,您可以使用票务屏幕请求列表界面帮助中心界面,或文章的屏幕.每个控制器的UI都有一个按钮,允许用户打开票据表单。

配置票务屏幕

使用RequestUiConfiguration类来配置屏幕和从中创建的票据。

例子:

斯威夫特

             
let customFieldOne = CustomField(fieldId: 1234567, value: "some_value")let config = RequestUiConfiguration()配置。主题=“iOS票”配置。标签=[“苹果”,“移动”]配置。customFields = [customFieldOne]let requestController = RequestUi。buildRequestUi((配置):)self.navigationController ?。pushViewController(requestController, animated: true)

objective - c

             
ZDKCustomFieldcustomFieldOneZDKCustomField allocinitWithFieldId@1234567价值@“some_value”ZDKRequestUiConfiguration配置ZDKRequestUiConfiguration新配置主题“iOS票”配置标签“苹果”“移动”配置customFieldscustomFieldOneuirequestControllerZDKRequestUi buildRequestUiWith@配置自我导航控制器pushViewControllerrequestController动画是的

请注意:有关自定义字段的更多信息,请查看我们的供应商

配置其他SDK控制器的票据界面

使用RequestUiConfiguration.例子:

斯威夫特

             
let config = RequestUiConfiguration()配置。主题=“iOS票”配置。标签=[“苹果”,“移动”]let requestListController = RequestUi。buildRequestList((配置):)self.navigationController ?。pushViewController(requestListController, animated: true)

objective - c

             
ZDKRequestUiConfiguration配置ZDKRequestUiConfiguration新配置主题@“iOS票”配置标签@@“ios”@“移动”uirequestControllerZDKRequestUi buildRequestListWith@配置自我导航控制器pushViewControllerrequestController动画是的

显示用户的票

使用buildRequestList ()方法RequestUi.例子:

斯威夫特

             
let requestListController = RequestUi.buildRequestList()self.navigationController ?。pushViewController(requestListController, animated: true)

objective - c

             
uirequestListControllerZDKRequestUi buildRequestList自我导航控制器pushViewControllerrequestListController动画是的

出示现有车票

使用buildRequestUi (requestId:字符串?)方法RequestUi.例子:

斯威夫特

             
let requestController = RequestUi。buildRequestUi (requestId:“< id >”)self.navigationController ?。pushViewController(requestController, animated: true)

objective - c

             
uirequestControllerZDKRequestUi buildRequestUiWithRequestId@ id > <”自我导航控制器pushViewControllerrequestController动画是的

查看机票更新

请求列表界面在票旁边显示一个项目符号,以提醒用户票已更新。然而,如果你不使用请求列表界面或者如果用户不经常检查他们的票务列表,用户就不会意识到更新。

如果使用JWT身份验证,用户从其他渠道提交的票据将出现在他们的请求列表中。当用户第一次查看请求列表时,它们显示为未读,因为已读/未读状态存储在设备上。查看每个请求会将其重置为已读状态,在此之后的任何新更新都会导致票据再次显示为未读状态。

请注意:当用户的票更新时,已识别的用户会收到Zendesk Support的电子邮件通知。亚博

您可以使用API提供程序来检查用户的票据是否已经更新,然后根据响应提醒用户。的ZDKRequestProvider有一个getUpdatesForDevice ()方法检查票据更新。如果发现任何错误,你可以在应用程序的其他地方提醒用户,或者使用RequestController出示每张票

例子:

斯威夫特

             
让ZDKRequestProvider()requestProvider ?。getUpdatesForDevice(回调:{(requestUpdates) in如果让requestUpdates = requestUpdates,requestUpdates.hasUpdatedRequests () {_ = requestUpdates.requestUpdates.flatMap {print("Request \($0.key) has \($0.value) updates")}}其他{//处理错误/没有更新}})

objective - c

             
ZDKRequestProvider提供者ZDKRequestProvider新提供者getUpdatesForDeviceWithCallbackZDKRequestUpdates_Nullable requestUpdates如果requestUpdateshasUpdatedRequestsNSString关键requestUpdatesrequestUpdatesNSLog@"请求%@有%@更新"关键requestUpdatesrequestUpdates关键}}其他的//处理错误/没有更新}}

这个方法缓存requestUpdates长达一小时。在该时间范围内的任何后续API调用都返回缓存的对象,而不是进行API调用。

查看票据将从缓存中删除它requestUpdates.requestsWithUpdates对象。该事件发生在加载票据注释时RequestController

如果你实现了一个自定义的UI,你可以通过调用下面的方法来标记一张票证,其中包含票证的ID和已读评论的数量(通常是评论的总数):

如果你实现了任何自定义UI,你可以通过调用下面的方法标记一个请求:

斯威夫特

             
ZDKRequestProvider()。markRequestAsRead("123", withCommentCount: 11)

objective - c

             
ZDKRequestProvider提供者ZDKRequestProvider init提供者markRequestAsRead@“123”withCommentCount11

如果你已经为请求更新集成了推送通知,但已经实现了自定义请求UI,那么当收到推送更新时,你可以将票据标记为未读:

             
ZDKRequestProvider () .markRequestAsUnRead(“123”)

objective - c

             
ZDKRequestProvider提供者ZDKRequestProvider init提供者markRequestAsUnread@“123”