tencent cloud

文档反馈

自定义 API

最后更新时间:2024-03-04 22:43:53
    TCMPP SDK 引擎提供扩展机制,允许宿主 App 自定义 API 供小程序调用。

    实现步骤

    1. 自定义类。
    2. 类实现中引入头文件 #import "TMAExternalJSPlugin.h"。
    3. 注册 api。

    参考用例

    #import "NativePluginTest.h"
    #import "TMAExternalJSPlugin.h"
    #import "TMFMiniAppInfo.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);
    
    //异步处理,在异步回调中把结果返回给小程序
    //{
    //  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);
    
    联系我们

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

    技术支持

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

    7x24 电话支持