tencent cloud

文档反馈

自定义API

最后更新时间:2024-03-05 15:37:33

    invokeNativePlugin

    TMF 小程序 sdk 提供接口,可实现一些开放平台 API 可以直接透传给宿主客户端来实现,如登录、获取用户信息等;一些宿主客户端可以扩展,以保持 UI 和功能的一致性,如扫码,分享等;也可以扩展自定义 API,进行透传宿主客户端来。

    小程序端使用方式

    var opts = {
    api_name: '', // api名称
    success: function(res) {},
    fail: function(res) {},
    complete: function(res) {},
    data: { // 入参
    name : 'kka',
    age : 22,
    data: {...}
    }
    }
    wx.invokeNativePlugin(opts); // 调用

    Methods

    方法
    说明
    View onCreateLoadingView()
    创建加载视图,允许宿主客户端呈现小程序/小游戏品牌和自定义显示样式,如返回空,则展示默认加载视图。
    View onCreateCapsuleView()
    创建胶囊按钮,允许宿主自定义胶囊按钮样式,如返回空,则展示默认胶囊按钮。
    boolean onShowMenu()
    单击 “...” 更多按钮时触发,如果 onCreateCapsuleView 返回空且 onShowMenu 返回 false,则显示默认菜单。
    void onExit()
    单击 “〇” 退出按钮时触发,如果 onCreateCapsuleView 返回空且 onExit 返回 false,则执行默认操作。
    boolean onAuthorize(JSONObject params, Value Callback callback)
    wx.authorize 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onOpenSetting(JSONObject params, ValueCallback callback)
    wx.openSetting 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onGetSetting(JSONObject params, ValueCallback callback)
    wx.getSetting 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onLogin(JSONObject params, ValueCallback callback)
    wx.login 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onRefreshSession(JSONObject params, ValueCallback callback)
    wx.checkSession 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onRequestPayment(JSONObject params, ValueCallback callback)
    wx.requestPayment 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onGetUserInfo(JSONObject params, ValueCallback callback)
    wx.getUserInfo 接口实现,如返回 false,则直接通知 wx api 调用失败,详情请参见 onGetUserInfo
    boolean onShareAppMessage(JSONObject params, ValueCallback callback)
    wx.shareAppMessage 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onNavigateToMiniProgram(JSONObject params, ValueCallback callback)
    wx.navigateToMiniProgram 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onScanCode(JSONObject params, ValueCallback callback)
    wx.scanCode 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onOpenDocument(JSONObject params, ValueCallback callback)
    wx.openDocument 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onOpenLocation(JSONObject params, ValueCallback callback)
    wx.openLocation 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onChooseLocation(JSONObject params, ValueCallback callback)
    wx.chooseLocation 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onPreviewImage(JSONObject params, ValueCallback callback)
    wx.rviewImage 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onChooseImage(JSONObject params, ValueCallback callback)
    wx.chooseImage 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onChooseVideo(JSONObject params, ValueCallback callback)
    wx.chooseVideo 接口实现,如返回 false,则直接通知 wx api 调用失败。
    boolean onShowToast(JSONObject params, ValueCallback callback)
    wx.showToast 和 wx.showLoading 接口实现,如返回 false,则使用默认样式展示。
    boolean onHideToast(JSONObject params, ValueCallback callback)
    wx.hideToast 和 wx.hideLoading 接口实现,如返回 false,则使用默认样式展示。
    boolean onShowModal(JSONObject params, ValueCallback callback)
    wx.showModal 接口实现,如返回 false,则使用默认样式展示。
    boolean onInvokeWebAPI(String event, JSONObject params, ValueCallback callback)
    实现自定义 wx api,如返回 false,则直接通知 wx api 调用失败,详情请参见 onInvokeWebAPI
    boolean onReportEvent(String event, Map params)
    详情请参见 onReportEvent
    
    boolean onGetUserInfo(JSONObject params, ValueCallback callback)
    
    -(void)onGetUserInfoWithParams:(NSDictionary *)params inApp:(NSString *)appId callbackHandler:(WebAPICallbackHandler)handler {
    //TODO
    NSDictionary* userInfo = @{
    @"nickname" : @"morven",
    @"headimgurl" : @"https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKav1ib8qG43xy0resTpgfeCqH00vRpHicEdk0kKMxqTMMUG1WmBuAdgB2tmCf6joGVKlGbsicelhluw/0",
    @"sex" : @(1),
    @"province" : @"广东",
    @"city" : @"深圳",
    @"country" : @"中国"
    };
    NSMutableDictionary* result = [NSMutableDictionary dictionaryWithCapacity:1];
    NSMutableDictionary* userInfoDic = [NSMutableDictionary dictionaryWithCapacity:6];
    NSMutableDictionary* resultDataDic = [NSMutableDictionary dictionaryWithCapacity:1];
    [userInfoDic setValue:userInfo[@"nickname"] forKey:@"nickName"];
    [userInfoDic setValue:userInfo[@"headimgurl"] forKey:@"avatarUrl"];
    [userInfoDic setValue:userInfo[@"sex"] forKey:@"gender"];
    [userInfoDic setValue:userInfo[@"province"] forKey:@"province"];
    [userInfoDic setValue:userInfo[@"city"] forKey:@"city"];
    [userInfoDic setValue:userInfo[@"country"] forKey:@"country"];
    
    NSData *data=[NSJSONSerialization dataWithJSONObject:userInfoDic options:NSJSONWritingPrettyPrinted error:nil];
    
    [resultDataDic setValue:[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding] forKey:@"data"];
    [result setValue:resultDataDic forKey:@"data"];
    [result setValue:@"getUserInfo:ok" forKey:@"errMsg"];
    
    if (handler) {
    //success
    handler(result, nil);
    }
    }
    
    boolean onInvokeWebAPI(String event, JSONObject params, ValueCallback callback)
    
    - (BOOL)onInvokeWebAPIWithEvent:(NSString*)event params:(NSDictionary*)params callbackHandler:(WebAPICallbackHandler _Nullable)handler {
    NSLog(@"onInvokeWebAPIWithEvent, event:%@, params:%@", event, params);
    if (handler) {
    handler(@{@"errMsg" : @"onInvokeWebAPIWithEvent"}, nil);
    }
    return YES;
    }
    
    boolean onReportEvent(String event, Map<String, String> params)
    
    事件上报,事件如下:
    1 启动小程序,event:MS_EVENT_LAUNCH,params 的 key:pagePath,d;
    2 小程序使用时长,event:MS_EVENT_USE_TIME,params 的 key:useTime, startId, appId,useTime 的单位是毫秒; 3 成功启动小程序,event:MS_EVENT_LAUNCH_SUCCESS,params 的 key:appId
    4 打开小程序内的页面,event:MS_EVENT_OPEN_PAGE,params 的 key:pagePath, appId
    5 启动小程序失败,event:MS_EVENT_LAUNCH_FAIL,params 的 key:pagePath, reason, appId
    
    联系我们

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

    技术支持

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

    7x24 电话支持