快速入门-支持iOS SDK
这个动手教程向您展示了如何在30分钟内构建一个功能正常的iOS应用程序,让用户直接从移动应用程序访问您的帮助中心。该应用程序还允许用户向Zendesk支持中的代理提交支持请求。亚博
本教程使用支持iOS的SDK,这是一个共享的代码库,可以让您轻松地合并不同的亚博Zendesk客户支持功能在iOS应用中。
亚博Zendesk为您提供了在移动应用程序中提供客户支持的其他选项:
您可以使用Chat SDK让用户与支持代理进行聊天。想知道怎么做,请看快速开始-聊天SDK的iOS。
您可以使用统一SDK将问答机器人与支持结合起来创建一个统一消息体验。但是,由于Answer Bot只能作为Zendesk Suite Professional计划或更高版本的附加组件使用,因此本教程中不使亚博用统一SDK。
你需要macOS和Xcode来构建iOS应用程序。你可以从苹果开发者网站或者从Mac应用商店。
您还需要一个Zendesk支持帐户或试亚博用帐户。你可以申请一个赞助的测试帐户它不像试用账户那样在14天后过期。
确保在您的Zendesk支持帐户中启用了帮助中心。亚博看到入门指南在Zendes亚博k支持帮助中心。
虽然这个快速入门指南提供了构建一个简单应用程序的一步一步的指导,但它不是一个iOS应用程序教程,如果你是iOS开发的新手,我强烈建议你通过课程开始开发iOS应用(Swift)在苹果网站上。
该指南将引导您完成以下基本步骤,将Zendesk支持功能添加到iOS应用程序中:亚博
本教程使用支持SDK的5.5.0版本。它在Xcode 13.4.1版本中进行了测试。
免责声明:亚博Zendesk提供本文仅用于指导目的。亚博Zendesk不支持Swift、iOS、Xcode等第三方技术。有任何问题请在亚博Zendesk sdk社区,或在网上搜索解决方案。
创建样例项目
本节向您展示如何在Xcode中快速创建样例项目。您将使用该项目来试用Support SDK。
在Xcode中,选择文件>新>项目。
如果你在“欢迎使用Xcode”窗口,选择创建一个新的Xcode项目。
确保iOS在顶部栏上被选中,选择应用程序,并按下一个。
为项目设置以下选项:
- 产品名称——输入我的示例应用程序或者类似的东西
- 组织标识符-输入如下内容com.sample
- 接口——选择故事板(不是默认值SwiftUI)
- 语言——选择斯威夫特
- 包括测试-取消选中此复选框
其他选项使用默认值。
点击下一个,选择要保存项目的位置,然后单击创建。
Xcode为你的项目创建所有的文件和基本设置。您可以在屏幕左侧的Project navigator中查看这些文件。如果没有看到文件,请单击面板上方的第一个图标(文件夹图标)。
使用CocoaPods添加支持SDK
CocoaPods是一个依赖项管理器,它允许你向项目中添加第三方框架和库。
步骤1 -安装CocoaPods
如果还没有安装,在终端运行以下命令安装CocoaPods:
$ sudo gem install cocoapods
如果你在macOS上,并且在使用gem安装CocoaPods时遇到问题,请尝试使用酿造。
$ brew安装cocoapods
看到开始在CocoaPods网站上。
步骤2 -创建Podfile
Podfile指定Xcode项目的依赖项。该文件只是简单地命名Podfile没有文件扩展名。
创建一个Podfile
在Terminal中,导航到项目的顶层文件夹(包含.xcodeproj文件的文件夹)。
使用以下命令创建Podfile:
$ pod init
用以下命令在Xcode中打开文件:
打开Xcode Podfile
内容应该如下所示:
#取消注释下一行定义全局平台为你的项目
#平台:ios,“9.0”
目标“我的示例支持应用程序”做
#评论下一行如果你不希望使用动态框架
use_frameworks!
#豆荚为我的样本支持应用程序
结束
添加
豆荚的Ze亚博ndeskSupportSDK
到做
布洛克:目标“我的示例应用程序”做
…
圆荚体“亚博ZendeskSupportSDK”
结束
保存Podfile。
步骤3 -在项目中添加SDK
如果你为以前版本的SupportSDK在项目亚博目录中安装了'ZendeskSupportSDK' pod,请先运行以下命令:
更新ZendeskSupp亚博ortSDK
CocoaPods更新系统上的SDK pod。
如果您以前从未使用CocoaPods在项目目录中添加过Support SDK,请跳过此步骤。
执行如下命令:
$ pod install
CocoaPods将最新版本的SDK添加到您的项目中。
如果遇到错误,就必须手动安装SDK。有关说明,请参阅添加支持SDK。
在Xcode中关闭你的项目,然后双击.xcworkspace位于项目根文件夹中的文件。
如果你找不到你的.xcworkspace文件,右键单击.xcodeproj位于项目根文件夹中的文件,然后选择显示包装内容。
重要的因为你的项目现在包含了一个由CocoaPods管理的依赖项,从现在开始你必须在Xcode中通过双击.xcworkspace文件。
运行测试构建
在进一步操作之前,请确保成功地将Support SDK添加到项目中。一种方法是运行测试构建。这个应用程序还没有做很多事情,但是如果您没有得到任何构建错误,那么您就知道您在正确的道路上。
你可以使用Xcode中包含的模拟器来运行你的应用程序。顾名思义,模拟器模拟在Mac上运行iOS应用程序。
控件打开项目.xcworkspace文件中的项目根文件夹(参见使用CocoaPods添加支持SDK).
在Xcode工具栏上的Scheme弹出菜单中,选择iPhone 13 Pro Max。
单击运行按钮(播放图标)在Xcode工具栏的左侧。
Xcode在工具栏的中间显示有关构建过程的消息。
构建完成后,模拟器将自动启动。在码头上找吧。要有耐心。模拟器第一次启动时可能需要一段时间才能运行。在后续版本中,速度要快得多。
最终,应用程序在模拟器中打开:
如果没有得到任何构建错误,就认为测试成功。您可能会得到一些构建警告,但现在可以忽略它们。
初始化支持SDK
在用户可以在其设备上使用任何Zendesk功能之前,亚博应用程序必须初始化您想要使用的Zendesk产品sdk。初始化过程包括设置初始值和执行其他设置任务。
在本节中,您将更新样例应用程序以初始化Support SDK依赖项并使其准备好使用。该任务包括以下步骤:
从您的Zendesk支持帐户获取初始化代码亚博
您可以从Zendesk Admin Center界面获得初始化代码。亚博代码是在Zendesk支持管理员在Zendesk支持中注册移亚博动应用程序时生成的。
您需要以Zendesk Support管理员的身份登录,亚博或者请管理员为您完成以下步骤。
在管理中心,点击渠道在侧边栏中,然后选择移动SDK。
点击添加应用程序。
在设置选项卡,为您的应用程序输入名称。
该名称仅供您参考,不会显示给您的用户。
下iOS代码片段,复制并保存Swift版本的初始化代码,而不是Objective-C版本。Swift版本是第二个代码片段。
它看起来应该是这样的,但有不同的参数值:
亚博。初始化(appId:“1 e41a02a5f85d58e009ed4fa”,
clientId:“mobile_sdk_client_e1c4e6262f1d02f43496”,
亚博zendeskUrl:“https://omniwear.亚博zendesk.com”)
支持。初始化(with亚博Zendesk:亚博。实例)
初始化代码是你的应用程序和Zendesk支持的实例所特有的。亚博现在将帐户中的代码片段保存在一个文本文件中,而不是示例中的代码片段。
为身份验证方法中,选择匿名。
当应用程序访问Zendesk Support时,它需要能够以亚博用户身份进行身份验证。您可以使用匿名访问或JWT身份验证。为简单起见,我们将对示例应用程序使用匿名访问。
点击保存。
向应用程序委托添加初始化代码
应用程序可以将某些任务委托给另一个适当命名为应用程序委托的对象。的AppDelegate.swift文件定义此委托。它包含一个UIApplicationDelegate对象,该对象具有响应应用程序生命周期中的重要事件的方法。例如,一个方法在应用程序启动时运行。可以将自己的代码添加到这些事件处理程序中。
在Xcode中,选择AppDelegate.swift在项目导航器中。
后添加以下导入语句
进口UIKit
声明:进口SupportSDK
进口亚博ZendeskCoreSDK
将复制的初始化代码片段添加到
应用程序()
方法,该方法具有didFinishLaunchingWithOptions
论点。控件之前粘贴代码片段返回
声明。该方法的初始化代码如下所示:
函数应用程序(_应用程序:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplication。LaunchOptionsKey:任何]?)->保龄球{
亚博。初始化(appId:“1 e41a02a5f85d58e009ed4fa”,
clientId:“mobile_sdk_client_e1c4e6262f1d02f43496”,
亚博zendeskUrl:“https://omniwear.亚博zendesk.com”)
支持。初始化(with亚博Zendesk:亚博。实例)
返回真正的
}
应用程序是事件驱动的,因此需要在事件处理程序中初始化框架
应用程序()
方法。该方法在应用程序进入活动状态之前运行。运行构建以确保没有得到任何错误消息。
添加用户标识
当应用程序访问Zendesk时,它需要能够以用户身份进行身份亚博验证。您可以使用匿名访问或JWT身份验证。为简单起见,您选择了匿名访问在Zendesk支持中注册应用程序亚博以上。
在AppDelegate.swift中添加以下代码大胆的)之后
亚博Zendesk.initialize ()
语句,但在Support.initialize(…)
声明:…
让身份=身份。createAnonymous()
亚博。实例?.setIdentity(身份)
支持。初始化(with亚博Zendesk:亚博。实例)
完成的方法应该如下所示:
函数应用程序(_应用程序:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplication。LaunchOptionsKey:任何]?)->保龄球{
亚博。初始化(appId:“1 e41a02a5f85d58e009ed4fa”,
clientId:“mobile_sdk_client_e1c4e6262f1d02f43496”,
亚博zendeskUrl:“https://omniwear.亚博zendesk.com”)
让身份=身份。createAnonymous()
亚博。实例?.setIdentity(身份)
支持。初始化(with亚博Zendesk:亚博。实例)
返回真正的
}
保存,然后运行构建以确保没有得到任何错误消息。
如果一切顺利,就可以开始向应用程序添加支持特性。
为SDK特性创建导航控制器
帮助中心功能被设计为与导航控制器。导航控制器管理一个视图堆栈,每个视图都有自己的视图控制器。除此之外,控制器提供了一个返回按钮,允许用户返回到堆栈中的前一个视图。
您的样例项目由两个连接的选项卡栏控制器组成视图控制器:
假设第一个视图控制器是为你的虚拟应用的主要功能保留的。在这里你不需要担心它。
您将创建第二个带有导航控制器的视图控制器,以显示Help Center。一种方法是在导航控制器中嵌入视图控制器,然后删除视图控制器。这种方法还有一个额外的好处,就是保留了选项卡接口连接器。
在Project导航器中,选择Main.storyboard在Xcode的可视化UI编辑器Interface Builder中打开它。
单击控制器使其聚焦,然后按Delete键。你会留下一个空白的故事板。
在Xcode菜单中,选择视图>显示库。
搜索标签栏控制器把它拖到storyboard上。
故事板显示应用程序的视图和它们之间的关系:
要获得鸟瞰图,右键单击故事板并选择缩放至适合。
选择选项卡栏控制器,然后在窗口右上方的实用程序面板中打开模拟度量。
检查它的初始视图控制器。
选项卡栏控制器的左边出现一个箭头。箭头表示这是用户启动应用程序时首先看到的屏幕。没有初始视图控制器,应用程序不知道显示哪个视图,只显示一个白屏。
放大“Item 2”控制器并单击它使其聚焦。
选择视图顶部栏上的圆形黄色图标。
图标表示视图的视图控制器。
在Xcode菜单中,选择编辑器>嵌入在>导航控制器。
Xcode为你重新排列了应用,将第二个视图作为导航控制器堆栈中的根视图。
提示:如果你的故事板太拥挤,右键单击并选择缩放级别。
在故事板左侧的文档大纲中(不是项目导航器),选择视图控制器场景并按下删除键。你不再需要它了。
您应该只剩下选项卡栏控制器、项目1控制器和导航控制器。
使控制器可定制
在将Zendesk Support特性添加到导亚博航控制器之前,需要使控制器可定制。如本节所述,通过子类化控制器使其可定制。
选择文件>新>文件,然后选择快速文件,并按下一个。
命名文件SupportNavController并点击创建。
打开SupportNavController文件中的代码编辑器,删除其中的所有内容,并添加以下行:
进口UIKit
类SupportNavController:UINavigationController{
}
这将创建UINavigationController类的一个可定制的子类。子类名应该与文件名相同。
确保保存该文件。
切换到故事板,选择导航控制器,然后在窗口右上方的utilities面板中打开Identity检查器。
在自定义类在顶部部分,进入SupportNavController作为班级。
这将导航控制器关联到SupportNavController子类。
构建并运行应用程序以确保一切正常。在模拟器中单击主屏幕上的第二个选项卡(标记为Item 2)后,您应该看到以下屏幕元素:
- 黑屏,表示导航控制器当前没有根视图
- 一个灰色的头部,它是导航控制器的导航视图
添加帮助中心
在SupportNavController.swift文件,替换
进口UIKit
语句,包含以下import语句:进口SupportSDK
UIKit是一个框架,它定义了许多UI元素和其他ios特定类。您不需要导入它,因为它是由ZendeskSDK框架导入的。亚博
添加
viewDidLoad ()
重写函数。SupportNavController子类:类SupportNavController:UINavigationController{
覆盖函数viewDidLoad(){
超级。viewDidLoad()
}
}
应用程序是事件驱动的,因此您需要在事件处理程序中启动Help Center
viewDidLoad ()
。的viewDidLoad ()
覆盖函数总是在支持视图加载到内存后运行。中添加以下语句
viewDidLoad ()
启动帮助中心功能:让helpCenter=HelpCenterUi。buildHelpCenterOverviewUi(withConfigs:[])
pushViewController(helpCenter,动画:真正的)
第一个语句构建了一个名为helpCenter。第二个语句推入helpCenter当前导航控制器上的视图控制器。
就是这样。完成的SupportNavController.swift文件应该如下所示:
进口SupportSDK
类SupportNavController:UINavigationController{
覆盖函数viewDidLoad(){
超级。viewDidLoad()
让helpCenter=HelpCenterUi。buildHelpCenterOverviewUi(withConfigs:[])
pushViewController(helpCenter,动画:真正的)
}
}
在模拟器中构建和测试应用程序。点击开始视图的第二个选项卡后,你的帮助中心应该会在应用程序中打开,让你浏览和搜索内容。
帮助中心还允许用户提交支持请求(票据)并查看他们打开的请求。点击右上方的注释图标来尝试一下。
下一个步骤
此时,你应该有一个可运行的iOS应用程序,允许用户打开你的帮助中心并提交支持请求。使用这个示例应用程序对框架的其余部分进行试验。
例如,可以通过指定部分或类别id列表来限制显示的文章数量。还可以通过提供标签列表来确定内容的范围。看到添加帮助中心在支持SDK文档中。
将项目放在git下,并创建分支来尝试不同的东西。如果出现严重错误,你总是可以重置。