iOS SDK 集成

本文档将介绍如何将 Copilot 应用集成到 iOS App 中

一、iOS SDK 使用说明

1、使用示例

添加依赖

指定阿里云仓库索引

source "https://github.com/aliyun/aliyun-specs.git"

添加依赖

pod 'AliyunMobiCopilot', '1.0.1'

执行 pod install,保存设置

使用 SDK

引入头文件

#import "AliyunMobiCopilot/AliyunMobiCopilot.h"

在调用层声明要实现的协议AliyunMobiCopilotDelegate

@interface CopilotPage () <AliyunMobiCopilotDelegate>
    @property (nonatomic, strong) WKWebView *webView;
    @property (nonatomic, strong) AliyunMobiCopilot *aliyunMobiCopilot;
@end

初始化 SDK

self.aliyunMobiCopilot = [
    [AliyunMobiCopilot alloc]
    initWithWebView:self.webView
    url: @"https://runtime-stage.mobiapp.cloud/workspace171343386479015/apps/172854875547671/"
    accessToken:@""
    delegate:self
];

2、详细说明

初始化接口

接口定义- (instancetype)initWithWebView:(WKWebView *)webView url:(NSString *)url accessToken:(NSString *)accessToken delegate:(id<AliyunMobiCopilotDelegate>)delegate;

参数定义

参数

类型

是否必填

说明

webView

WKWebView *

用于加载和显示内容的 Web 视图

url

NSString *

Copilot 应用 URL

accessToken

NSString *

开发环境应用:不需要传递 accessToken

生产环境应用:通过 GenerateNativeUserToken 接口 生成 accessToken,传递给 SDK

delegate

id<AliyunMobiCopilotDelegate>

处理事件的代理对象

加载 Copilot 应用

接口定义- (void)loadCopilot;

更新身份验证令牌

接口定义:- (void)updateAccessToken:(NSString *)accessToken;

accessToken 过期时间为 300 秒,需要在过期时间内通过 RefreshNativeUserToken 接口 重新获取,通过 [aliyunMobiCopilot updateAccessToken: @"nextAccessToken"]; 设置新的 accessToken

AliyunMobiCopilotDelegate 协议说明

方法名

类型

说明

-handlerMobiErrorWithCode:message:

NSString *code, NSString *message

当 Mobi 环境中发生错误时调用

-handlerMobiNavigateErrorWithRouterKey:code:message:

NSString *routerKey, NSString *code, NSString *message

当发生导航错误时调用

-handlerNavigateTo:routerParams:

NSString *routerKey, NSDictionary *routerParams

当触发导航事件时调用

错误码说明

错误码

说明

AccessTokenError

AccessToken 过期

NavigateError

跳转错误,如参数无法序列化

updateAccessTokenError

更新 AccessToken 错误

二、iOS SDK Demo 工程使用说明

1、通过 Copilot 应用模板创建应用,发布应用到开发或生产环境

2、下载 Demo 仓库到本地,工程文件夹为:mobi-copilot-ios-demo,项目结构:

.
├── Podfile
├── README.md
└── mobi-copilot-ios-demo
   ├── CopilotPage
   ├── LeavePage
   ├── MeetingPage
   └── main.m

3、获取应用运行信息

image

从应用环境信息获取应用地址

4、将应用 url 和 accessToken 作为参数传递给 SDK

将 Copilot 应用的开发环境访问链接,配置到工程的mobi-copilot-ios-demo/CopilotPage/CopilotPage.m文件中。

url&accessToken.jpg

设置 url 和 accessToken 传参

  • 开发环境应用:不需要传递 accessToken

    生产环境应用:通过 GenerateNativeUserToken 接口 生成 accessToken,传递给 SDK

    • accessToken 过期时间为 300 秒,需要在过期时间内通过 RefreshNativeUserToken 接口 重新获取,通过 [aliyunMobiCopilot updateAccessToken: @"nextAccessToken"]; 设置新的 accessToken。

5、运行 Demo

安装依赖

pod install

使用 Xcode 启动项目 Product -> Run

image

启动登录访问开发环境的 Copilot 应用,生产环境使用 accessToken 免登

image

成功访问到 Copilot 应用,再向 Copilot 表达请假或预定会议室的意图时,Copilot 将下发跳转到 Native 的页面的功能路由,并匹配相关的页面表单项。

6、问题解答

如果启动项目遇到错误:Framework 'Pods_mobi_copilot_ios_demo' not found

请删除 Frameworks 引用,再次启动项目

image