小程序简介
-
简介
Finchat小程序是Finchat开放平台退出的,全平台支持的小程序框架,用于助力移动端的快速开发
开发指引
Finchat小程序平台全面兼容微信框架,在开发前,可先参考 微信小程序开发者文档
可扩展性
FinChat小程序框架,支持扩展,可以非常容易实现原生API注入,框架本身已经提供了丰富的原生API实现,为了更好地满足在开发者需求,框架也提供了自定义原生API的能力。
前端
在小程序根目录(如:demo目录)增加FinChatConf.js文件,配置示例如下:
module.exports = { extApi:[ { //普通交互API name: 'openLink', //扩展api名 该api必须Native方实现了 params: { //扩展api 的参数格式,可以只列必须的属性 url: '' } } ] }
安卓端
调用接收
在Native端,开发者需要在Hera框架初始化时提供一个实现了 IHostApiDispatcher 接口的对象,通过该接口的 dispatch 方法可以对来自小程序业务端的API调用事件进行接收和处理.
@Override public void dispatch(String event, //事件名称,即api名称 String param, //调用参数 IHostApiCallback apiCallback //回调接口 ) { //此处处理api调用 //处理完毕后应调用IHostApiCallback的回调方法将结果回传,否则调用的api将收不到结果 }
IHostApiCallback 接口的定义
/** * 结果的回调方法 * * @param status 状态码,参考以下状态码说明,无效值按'UNDEFINE'处理 * @param result json结果 */ void onResult(int status, JSONObject result); /** * 成功状态码,即api调用成功,将结果返回 */ SUCCEED; /** * 失败状态码,即api调用失败 */ FAILED; /** * 未定义状态码,即调用的api不存在或未实现 */ UNDEFIN; /** * 中间状态,与"openPageForResult" api配合使用, * 用与打开其他Activity页面并接收其返回的结果,参考sample示例 */ PENDING;
结果返回
当事件处理完毕后,通过 IHostApiDispatcher 接口对象的 onResult 方法将调用结果返回。如下:
onResult(IHostApiDispatcher.SUCCEED, resultJson); //处理调用成功的结果返回 onResult(IHostApiDispatcher.FAILED, null); //处理调用失败的结果返回
iOS端
注册需要立即返回结果的API
通过WHHybridExtension注册自定义API,处理完毕返回结果
[WHHybridExtension registerExtensionApi:@"openLink" handler:^id(id param) { // do something return @{WDHExtensionKeyCode:@(WDHExtensionCodeSuccess), WDHExtensionKeyData: @"hello world"}; }];
注册需要延迟返回结果的API
通过WHHybridExtension注册自定义API,处理事件对象需要实现WDHRetrieveApiProtocol接口,当事件处理完毕后调用WDHApiCompletion返回相应结果
[WHHybridExtension registerRetrieveApi:@"getResult" handler:^id(id param, WDHApiCompletion completion) { ViewController *vc = [[ViewController alloc] init]; if([vc respondsToSelector:@selector(didReceiveApi:withParam:completion:)]){ [vc didReceiveApi:@"getResult" withParam:param completion:completion]; UINavigationController *navi = (UINavigationController *)self.window.rootViewController; [navi pushViewController:vc animated:YES]; return @{WDHExtensionKeyCode:@(WDHExtensionCodeSuccess)}; } return @{WDHExtensionKeyCode:@(WDHExtensionCodeFailure)}; }];
QuickStart
FinChat平台使用小程序需要把小程序编译成平台识别的H5代码,因此在最终发布时,需要把小程序源码编译成H5代码才能上传发布。
编译
使用FinChat小程序编译工具,需要安装docker,具体docker的安装使用方法,请参考相关的操作说明 编译命令如下:
docker run --rm -v 小程序源程序路径:/opt/appletbuild/source -v 小程序编译输出路径:/opt/appletbuild/dist docker.finogeeks.club/build/applet