No Description

wanghualei 6580d822cb update 1 year ago
FinoAppletDemo 30372e4784 update 1 year ago
FinoAppletDemo.xcodeproj 30372e4784 update 1 year ago
.gitignore 9821adb0f5 initial commit 2 years ago
Podfile d7f7a8c5d9 更新 'Podfile' 1 year ago
README.md a62c3a7d5c update readme 2 years ago

README.md

FinApplet SDK 集成文档

在集成凡泰小程序SDK之前,默认您会使用cocoapods来集成SDK或者第三方库。

1. 添加FinApplet的依赖

我们的FinApplet.framework目前只提供pod依赖集成,暂不单独提供FinApplet.framework。 当然了,你也可以创建一个Demo工程,把FinApplet.framework下载下来后,拖进工程里。

在podfile 中添加这一行:

pod 'FinApplet', '2.0.54'

然后,执行pod update更新依赖即可。

2. 使用FinApplet SDK

因为打开应用内的小程序与打开服务器端小程序的流程不一样,所以为了简化调用流程,我们将打开本地小程序与打开服务器端小程序的场景以及需要配置的参数、调用的API都做了区分。

  • 打开应用程序内的小程序,在初始化配置时,只需要配置currentUserId,用于存放小程序相关的缓存数据即可。然后启动小程序使用startLocalApplet:appletTitle:appletIconName:startParams:InParentViewController: completion:即可。
  • 打开服务器端的小程序,在初始化配置时,需要配置apiServerapiPrefixcurrentUserIdjwtaccessToken。启动小程序使用startRemoteApplet:startParams:InParentViewController:completion:

如果是打开服务器端的小程序,因为会自动下载小程序以及更新小程序所以需要配置服务器地址、token等一些必要信息,并且需要部署小程序配套的后台服务。

2.1 打开应用程序内的小程序

2.1.1 初始化SDK

如果只是在工程里打开工程目录下的小程序,则只需要配置currentUserId即可。

示例如下:

FATConfig *config = [[FATConfig alloc] init];
config.appKey = @"xxxxxx";
config.currentUserId = @"xxxx";

[[FATClient sharedClient] initWithConfig:config error:nil];

这里的currentUserId会影响本地的小程序缓存的路径,所以必须得配置。因为一个app可能会切换多个账号,所以这里最好设置一个当前用户的唯一标识。该账号所使用的小程序相关的信息会缓存在这个目录下。 appKey是用来校验,你是否有权限使用小程序SDK。如果appKey校验不通过,所有接口都是不能使用的哦!

2.1.2 打开本地小程序

调用打开本地小程序的Api即可:

// 打开本地小程序
NSDictionary *dict = [self.array objectAtIndex:indexPath.row];
NSString *appletId = dict[@"appId"];
NSString *appTitle = dict[@"title"];
// 不需要启动传参时,就传nil。
NSDictionary *startParams = dict[@"startParams"];

[[FATClient sharedClient] startLocalApplet:appletId appletTitle:appTitle appletIconName:nil startParams:startParams InParentViewController:self completion:^(BOOL result, NSError *error) {
    NSLog(@"result:%d---error:%@", result, error);
}];

目前的启动参数仅支持三个key:pageURL/launchParams/scene 。其中pageURL是启动时要打开的页面路径;launchParams是启动时要传的参数,组成类似于url的query格式。scene场景值。 示例: @{

    @"pageURL":@"/pages/knowledge/Knowledge",
    @"launchParams":@"fcid=@staff_adviser:finogeeks.cn&name=test11",
    @"scene" : @"1001"

}

2.2 打开服务器端的小程序

2.2.1 初始化SDK

FATConfig *config = [[FATConfig alloc] init];
// 服务器地址,例如:https://api.finogeeks.club
config.appKey = @"xxxxxx";
config.apiServer = @"xxxxx";
config.apiPrefix = @"/api/v1";
config.currentUserId = @"@testxxxx:finogeeks.club";
config.jwt = @"XXXXXX";
config.accessToken = @"XXXXXX";
[[FATClient sharedClient] initWithConfig:config error:nil];

2.2.2 打开服务器端小程序

打开服务器端小程序的实例:

NSDictionary *dict = [self.appletList objectAtIndex:indexPath.row];
NSString *appId = dict[@"appId"];
// 打开小程序
[[FATClient sharedClient] startRemoteApplet:appId startParams:nil InParentViewController:self completion:^(BOOL result, NSError *error) {
    NSLog(@"result:%d---error:%@", result, error);
}];

3. 小程序的相关API

小程序API