# 桌面端集成
本章节主要讲述如何将sdk集成到项目当中,并调用sdk启动一个小程序,关于sdk的更详细用法请参考下一章节SDK 更多用法
集成样例代码
可以在这里获取集成样例代码https://github.com/finogeeks/finclip-desktop-demo (opens new window)
若您所在的环境无法访问 Github,也可以点击这里访问 gitee (opens new window) 的镜像仓库。
# 1. 获取凭据
请注意
集成 SDK 需要先在 FinClip 平台中创建应用并绑定小程序,获得每个应用专属的SDK KEY
及SDK SECRET
后,随后就可以在集成 SDK 时填写对应的参数。打开小程序时 SDK 会自动初始化,并校验SDK KEY
,SDK SECRET
与BundleID(Application ID)
是否正确。
您可以 【点击这里】 查看如何获取所需要的SDK KEY
及SDK SECRET
。请务必确认集成 SDK 时填写的参数正确,否则会导致小程序无法打开。
# 2. 获取与导入 SDK
从官网的资源下载中心 (opens new window)下载对应系统的SDK
桌面版 SDK 目录结构如下:
Finclip.zip
│ FinclipSDKWrapper.(dll | so | dylib) # 动态链接库
│ finclip_api.h # 公共接口头文件
│ finclip_const.h # 常量定义文件
└───FinClip/ # 主程序
# 2.1 导入 SDK
# 2.1.1 加载动态链接库
FinClip SDK 提供了头文件和动态链接库.
如果您使用 C/C++ 开发, 请直接使用我们提供的文件.
如果您使用的语言不能直接使用头文件编译, 请使用 LoadLibrary / dlopen 的方式读取动态链接库
# 2.1.2 读取动态链接库中的函数
使用 LoadLibrary / dlopen 的方式调用函数, 通常有以下步骤:
- 打开
finclip_api.h
文件找到定义 - 根据函数声明, 定义目标语言的函数
下面以 finclip_start_applet_params
为例
- 找到它的定义如下:
int finclip_start_applet_params(const char* appstore, const char* appid, void* params);
- 定义您所使用语言的函数
# 3. SDK 初始化
SDK 加载成功后, 接下来介绍具体的 API 使用方法, 所有示例均使用 C 语言. 也可以 【点击这里】 (opens new window) 查看对应语言的完整demo.
# 3.1 配置 SDK
FinclipParams *config = finclip_create_params();
finclip_params_set(config, FINCLIP_CONFIG_APPKEY, appkey);
finclip_params_set(config, FINCLIP_CONFIG_SECRET, secret);
finclip_params_set(config, FINCLIP_CONFIG_DOMAIN, domain);
finclip_params_set(config, FINCLIP_CONFIG_EXE_PATH, exe_path);
finclip_init_with_config(appstore, config);
finclip_destory_params(config);
appstore
sdk内部会维护一套服务器配置对象,里边存储了启动小程序相关的各项参数,appstore是这组对象的唯一标识符,当进行一些start_applet、init等操作时,会将当前的配置参数存进服务器配置对象里边 可以创建多个服务器配置,搭配不同的appstore值使用
FinClipParams对象
FinClipParams对象是一个包括若干对 (key, value) 键值对的结构,用于外部和sdk传输数据使用,以弥补 char* 格式的一些局限
FinClipParams对象通过finclip_create_params
等方式创建,用finclip_destory_params
销毁。
注意每次使用完毕后,需要用finclip_destory_params
手工销毁
value只允许设置字符串,不允许布尔值和数字
# 4. 小程序管理
# 4.1 打开小程序
配置完成后, 即可启动小程序
finclip_start_applet(app_store, appid); // 使用app_store中的配置打开对应环境的小程序
# 4.2 关闭小程序
您可以关闭指定小程序, 也可以关闭所有小程序
finclip_close_applet(appid); // 关闭指定小程序
finclip_close_all_applet(); // 关闭所有小程序