tencent cloud

自定义小程序 API

PDF
聚焦模式
字号
最后更新时间: 2026-01-29 00:08:49
如果在小程序中需要调用某些宿主应用提供的能力,在小程序 SDK 未实现或无法实现时,开发者可以通过注册扩展(自定义) API 来实现相关能力,使得小程序能够调用宿主应用中提供的自定义 API 能力。
定义自定义的小程序 API 并关联 API 处理程序。apiName:自定义 API 的名称,小程序可通过调用 wx.invokeNativePlugin()使用此 API。
apiHandler: 处理此 API 调用的函数。
void registerMiniAppApi(String apiName, TcmppMiniAppApiHandler apiHandler)
示例代码:
final _tcmppFlutterPlugin = TcmppFlutter();

...

@override
void initState() {
super.initState();

...

/// 必须在小程序启动前注册
_tcmppFlutterPlugin.registerMiniAppApi("myApiName",myApiHandler);
}
小程序会通过 wx.invokeNativePlugin 的方式传入 api_name 去调用 Flutter 注册的 myApiName。
小程序代码的调用示例:
example code:
/// Mini Program Call
var opts = {
api_name: 'myApiName',
success: function(res) {
log(res);
},
fail: function(res) {
log(res);
},
complete: function(res) {
log(res);
},
data: {
name : 'kka',
age : 22
}
}
wx.invokeNativePlugin(opts);
在 Flutter 侧实现 myApiHandler 函数:
/// 客户端 API
Future<Map<String, dynamic>?> myApiHandler(MiniApiCall call) async {
print("API : ${call.apiName}");
print("AppInfo: ${call.appInfo}");
print("WebView ID: ${call.webViewId}");
print("params: ${call.params}");
return {"result": "success","method":"myApiHandler"};
}
MiniApiCall
params 参数变动说明
注意:
2.2.16 版本及其之前
Android 与 iOS 端回调参数不统一。
Android 端 params 内容示例:
{param1: test, param2: 189}
iOS 端 params 内容示例:
{stateEvent: requestCustomApi, api_name: customApi, data: {param1: test, param2: 189}, webviewId: 4}

2.2.17 版本及其之后
对 Android 与 iOS 端返回的 params 参数格式进行统一,均为以下格式。
{stateEvent: requestCustomApi, api_name: customApi, data: {param1: test, param2: 189}, webviewId: 4}
class MiniApiCall {
/// 小程序信息
AppInfo? appInfo;
/// 当前自定义 Api 名称
String apiName;
/// 所在 WebView 页面 id
int webViewId;
/// 请求参数信息,示例:{stateEvent: requestCustomApi, api_name: customApi, data: {param1: test, param2: 189}, webviewId: 4}
Map<String, dynamic>? params;
}

帮助和支持

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

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

文档反馈