TCMPP SDK 引擎提供扩展机制,允许宿主 App 自定义 API 供小程序调用。
实现步骤
1. 自定义类。
2. 类实现中引入头文件 #import "TMAExternalJSPlugin.h"。
3. 注册 api。
参考用例
#import "NativePluginTest.h"#import "TMAExternalJSPlugin.h"#import "TMFMiniAppInfo.h"@implementation NativePluginTestTMA_REGISTER_EXTENAL_JSPLUGIN;//自定义同步 apiTMAExternalJSAPI_IMP(testSync) {TMFMiniAppInfo *appInfo = context.tmfAppInfo;NSDictionary *data = params[@"data"];NSLog(@"************ invokeNativePlugin testSync,appId:%@,data is %@",appInfo.appId, data);TMAExternalJSPluginResult *pluginResult = [TMAExternalJSPluginResult new];pluginResult.result = @{};return pluginResult;}TMAExternalJSAPI_IMP(test) {TMFMiniAppInfo *appInfo = context.tmfAppInfo;NSDictionary *data = params[@"data"];NSLog(@"************ invokeNativePlugin test,appId:%@,data is %@",appInfo.appId, data);//异步处理,在异步回调中把结果返回给小程序//{// TMAExternalJSPluginResult *pluginResult = [TMAExternalJSPluginResult new];// pluginResult.result = @{@"result" : result.data};// [context doCallback:pluginResult];// }return nil;}@end
小程序中使用。
//异步api调用var opts = {api_name: 'test',success: function(res) {},fail: function(res) {},complete: function(res) {},data: { // 入参name : 'kka',age : 22}}wx.invokeNativePlugin(opts);//同步api调用var opts = {api_name: 'testSync',sync:true}var rst = wx.invokeNativePlugin(opts);
进阶使用
自定义 api 支持在终端 app 配置文件的方式进行配置,在小程序中通过直接调用wx.api的方式来调用。
1. 将 app 中实现的配置文件统一放在tcmpp-custom-config.json中,并将tcmpp-custom-config.json文件设置打包到 app 中,参考内容如下:
{"extApi":[{"name": "test","sync": false,"params": {"data": ""}},{"name": "testSync","sync": true,"params": {"name": "","title": ""}}]}
2. 小程序中调用。
//异步api调用var opts = {success: function(res) {},fail: function(res) {},complete: function(res) {},data: {name : 'kka',age : 22}}wx.test(opts);//同步api调用var rst = testSync(opts);