iOS SDK接入文档#

待客iOS SDK当前支持iOS 8.0及更新的系统,支持使用Objective-C或Swift开发的项目。

集成 SDK

待客iOS SDK目前支持CocoaPods和手动的方式来集成SDK,我们推荐您通过CocoaPods来集成SDK。

通过CocoaPods集成SDK

在Xcode项目的Podfile里,通过指定pod 'Daike'的形式集成SDK:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'Daike', '~> 1.1'
end

然后运行下面的指令更新项目:

$ pod install

更新成功后,打开项目的.xcworkspace文件,就可以使用待客SDK了。

手动集成SDK

下载最新的iOS SDK

  1. 将下载的安装包拖进Xcode项目中
  2. 加入以下Framework
    1. CoreTelephony.framework
    2. SystemConfiguration.framework
    3. MapKit.framework
    4. WebKit.framework
    5. AVFoundation.framework
    6. AudioToolbox.framework
    7. MobileCoreServices.framework
    8. CoreData.framework
    9. AssetsLibrary.framework
    10. libz.tbd
    11. libicucore.tbd
    12. libc++.tbd
  3. Building Settings -> Other Linker Flags 中加入 -ObjC

使用SDK

AppDelegate.mimport头文件:

#import "Daike/Daike.h"

然后AppDelegateapplication:didFinishLaunchingWithOptions中,调用初始化函数:

[Daike initializeWithToken:TOKEN
                    secret:SECRET
                     appId:APP_ID];

其中,tokensecretappId可以通过网站后台获取,请务必保证在AppDelegatedidFinishLaunchingWithOptions中调用该方法,避免运行过程中出现运行时错误。

完成初始化后,就可以在应用的任意UIViewController中通过调用:

[Daike startFAQsWithEnableChat:YES];

唤起待客的界面,为用户提供客服服务了

如果需要跟你们的用户系统配合使用,请在用户登录后调用:

[Daike loginWithUserId: USER_ID
              username: USERNAME
                 email: EMAIL
            properties: PROPERTIES];

API定义

以下API均通过[Daike XXXX]的形式进行调用,方法详情请见Daike.h

初始化SDK

请在application:didFinishLaunchingWithOptions中呼叫

+ (void)initializeWithToken:(nonnull NSString *)token
                     secret:(nonnull NSString *)secret
                      appId:(nonnull NSString *)appId;

取得未读消息数目

返回所有的未读消息数给应用

+ (NSInteger)unreadMessageCount;

启动SDK的界面

启动SDK界面,如果enableChat参数为YES,则表示启用聊天支持;NO则表示不使用聊天功能。

+ (void)startFAQsWithEnableChat:(BOOL)enableChat;

直接启动聊天界面

直接启动聊天界面,如果没有正在处理的工单,会先启动创建工单界面

+ (void)startConversation;

自定义属性

应用可以为当前用户设置一组自定义的属性,PropertiesNSDictionary,支持用NSStringKeyNSStringNSNumberValue

+ (void)setProperties:(nullable NSDictionary *)properties;

Troubleshooting

选取图片的时候闪退了?!

请在plist中加入

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) uses photos</string>

横屏模式的选取图片支持

如果您的 App 是设计为是横屏 Only 模式的(LandscapeLeft 或 LandscapeRight),那么选择上传图片时会遇到 Crash 问题。这是因为 UIImagePickerController 不支持 Landscape Only 的模式(但可以在 Landscape 和 Portrait 混合模式下工作)。

这里 Daike SDK 通过暴露了一个 inImagePickerStatus 属性来使您的 App 支持在仅横屏模式下也支持选择图片。

只需要在 AppDelegate 的增加一个方法,动态地判断是否是选取图片的状态,再返回 Orientations 即可:

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    if ([Daike sharedInstance].inImagePickerStatus) {
        // 这里必须是 UIInterfaceOrientationMaskAll
        return UIInterfaceOrientationMaskAll;
    } else {
        // 这里可以写上所有 App 标准模式下需要支持的对应 Orientation
        return UIInterfaceOrientationMaskLandscapeLeft;
    }
}

这样可以在不影响 App Oritentation 的模式下,也能正常使用 Daike 的选取图片功能。

国际化支持

目前待客SDK支持英文/中文简体/中文繁体/日文,如需要显示,需要在Project info中添加对应的语言

更新历史

请查看release notes