如果在小程序中需要调用某些宿主应用提供的能力,在小程序 SDK 未实现或无法实现时,开发者可以通过注册扩展(自定义) API 来实现相关能力,使得小程序能够调用宿主应用中提供的自定义 API 能力。
定义自定义的小程序 api 并关联 api 处理程序。apiName:自定义 api 的名称,小程序可通过调用 wx.(apiNme)使用此 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:
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 函数:
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"};
}
本页内容是否解决了您的问题?