tencent cloud

文档反馈

自定义小程序 API

最后更新时间:2024-09-25 20:38:54
    TCMPP SDK 引擎提供扩展机制,允许宿主 App 自定义 API 供小程序调用。

    实现步骤

    1. 自定义一个类,并导入 TMAExternalJSPlugin。
    #import <TCMPPSDK/TCMPPSDK.h>
    
    @interface NativePluginTest : NSObject
    
    @end
    2. 声明 TMA_REGISTER_EXTENAL_JSPLUGIN 并通过 TMAExternalJSAPI_IMP() 添加自定义 API。

    参考用例

    #import "NativePluginTest.h"
    #import <TCMPPSDK/TCMPPSDK.h>
    
    @implementation NativePluginTest
    
    TMA_REGISTER_EXTENAL_JSPLUGIN;
    
    //自定义同步 api
    TMAExternalJSAPI_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);
    
    //异步处理,在异步回调中把结果返回给小程序 async callback
    //{
    // 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 中,参考内容如下:
    {
    "extApi":[{
    "name": "test",
    "sync": false,
    "params": {
    "data": ""
    }
    },
    {
    "name": "testSync",
    "sync": true,
    "params": {
    "name": "",
    "title": ""
    }
    }
    ]
    }
    
    
    2. 把 tcmpp-custom-config.json 放入 iOS 工程中:
    
    
    
    3. 在小程序中直接用 wx.test() 的方式调用。
    //异步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);
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持