开发者学堂课程【mPaaS 小程序开发实战 - 教你如何独立运行小程序 :Android 端01:小程序双向通道 -tiny2native】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/741/detail/13127
Android 端01:小程序双向通道-tiny2native
内容介绍:
一、自定义 API
二、注册 API
三、小程序调用
自定义双向通道代表小程序是一个容器,然后有一些定制 API 的需求,从小程序端向哪种端发送事件。例如从 menu端将事件发送给小程序。本节基于上述自定义内容来做简单介绍。
一、自定义API
小程序调用原生自定义 API
自定义API
public class MyJSApiPlugin extends H5SimplePlugin {
/**
*自定义 API
*/
public static final String TINY_TO_NATIVE = "tinyToNative";
@Override
public void onPrepare(H5EventFilter filter) {
super.onPrepare(filter);
//onPrepare 中需要 add 进来
filter.addAction(TINY_TO_NATIVE);
}
@Override
public boolean handleEvent(H5Event event,H5BridgeContext context) {
String action = event.getAction();
if (TINY_TO_NATIVE.equalslgnoreCase(action)) {
JSONObject params = event.getParam();
String param1 = params.getString("param1");
String param2 = params.getString("param2");
JSONObject result = new JSONObject();
result.put(“success" , true);
result.put("message", "客户端接收到参数:" + param1 + ", " + param2+"\n返回Demo当前包名:”+ context.getActivity().getPackageName()
context.sendBridgeResult(result);
return true;
}
return false;
}
}
复制上述代码到已经准备好可以打开小程序的工程中,新建
然后粘贴在 MyJSApiPlugin 中,添加依赖。
以上插件已经写好,是自定义的 api,API 名称为 tinyToNative,然后在onPrepare中将事件加入 filter 中,同时在handleEvent中对事件进行拦截处理,处理逻辑为通过 event.getParam 拿到小程序发给我们的入参,然后对它进行一些打包处理,将结果通过 result JSONObject 传回给小程序端。
二、注册 API
以上自定义的 API 就写好了,接着将它注册,在代码 MyAppliaction 中找到 public void onPostInit(),
写入
MPNebula.registerH5Plugin(MyJSApiPlugin.class.getName(),””,”page”,new String[]{MyJSApiPlugin.TINY_TO_NATIVE});
三、小程序调用
可以直接使用小程序的示例 demo,其中有 tiny-to-native.js 的页面,页面中存在一个按钮直接调用 tiny-to-native。
Page({
tinyToNative() {
my.call(‘tinyToNative", {
param1:'p1aaa ’ ,
param2: 'p2bbb’,
}, (result) => {
console.log(result);
my.showToast({
type: 'none ' ,
content: result.message,
duration: 3000,
});
})
}
});
通过以上形式调用本地客户端,调用后代码 MyApplication 中的
String param1 = params.getString(“param1”);
String param2 = params.getString(“param2”);
Param1 和 param2 就会变成 p1aaa 和 p2bbb
然后回传给小程序端,小程序端拿到 result 后拿到 result.message
以上就是小程序发送一个请求并且收到回调的流程。
运行工程,额可以看到安装已经成功。
下载完成后打开,找到自定义 API,点击触发自定义 API,显示:客户端接收到参数:p1aaa,p2bbb 返回 demo当 前包名:com.mpaas.demo。