tencent cloud

腾讯云超级应用服务

动态与公告
【2025年1月2日】关于腾讯云小程序平台更名为腾讯云超级应用服务的公告
控制台更新动态
Android SDK 更新动态
iOS SDK 更新动态
Flutter 更新动态
IDE 更新动态
基础库更新动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
按量计费(后付费)
续费指引
停服说明
快速入门
套餐管理
概述
控制台账号管理
存储配置
加速配置
品牌化配置
平台功能
控制台登录
用户和权限体系
小程序管理
小游戏管理
应用管理
商业化
平台管理
用户管理
团队管理
运营管理
安全中心
代码接入指引
Demo 及 SDK 获取
Android
iOS
Flutter
App 服务端接入指南
GUID 生成规则
小程序开发指南
小程序介绍与开发环境
小程序代码组成
指南
框架
组件
API
服务端
JS SDK
基础库
IDE 使用指南
小游戏开发指南
指南
API
服务端
实践教程
小程序登录实践教程
小程序订阅消息实践教程
支付相关实践教程
广告接入实践教程
小游戏订阅消息实践教程
相关协议
数据处理和安全协议

自定义API

PDF
聚焦模式
字号
最后更新时间: 2025-01-16 19:28:13

invokeNativePlugin

我们的小程序 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


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈