开发者学堂课程【mPaaS 小程序开发实战:Android 端02:小程序双向通道 -native2tiny】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/301/detail/3512
Android 端02:小程序双向通道 -native2tiny
内容介绍
一、原生效小程序发送自定义事件
二、客户端发送事件
一、原生效小程序发送自定义事件
Native 客户端在启动一个小程序已经启动的过程中,native 客户端有一些事件要发送给你的小程序,小程序要接收到客户端的一些事件,首先你要向你的小程序去注册你要监听的事件。
注册的方法(事例):通过调用 my.on一个事件名称来去注册这个事件,
在小程序示例 demo 中,可以看到小程序本身的这个 app.js 中我们在 onLaunch 的时候注册了这个事件 my.on,nativeToTiny 发现小程序的通道,在这里面接收到参数之后,直接去调用 toast。
二、客户端发送事件
通过拿到 H5Service,拿到最上层的配置,通过h5配置小程序的页面,拿到他的 bridge,向他发送 tiny 这个事件,事件的参数是 object,value 的值可随意。
实战演习:
protected void onCreateBundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findviewById(Rid.btn)setnClickListeer(newViewOnclickListener(){
@Override
public void onClick(View view){
MPNebula.startApp(“2018080616290001);
new Thread(new Runnable(){
@Override
public void run() {
for(int index =0; index<5;index++){
try {
Thread.sleep(5000);
} catch(InterruptedException e){
e:printstackTrace();
}
final int i = index;
runnUiThread(new Runnable(){
@Override
public void run() {
H5Service h5Service=MPFramework.getExternalService(H5Service.class.getName())
final H5Page h5Page=h5ServicegetTopH5Page();
if (null != h5Page){
JSONObject jo=new JSONObject(); jo.put("key",i);
// native 向小程序发送事件的方法
//第一个是事件名称,第二个是参数,第三个默认传 null
h5PagegetBridge().sendDatawarpToWeb(“nativeToTiny",jo,null);}
} I
});
}).start();
}
);
直接发送这个小程序,最终打开这个小程序,每隔五秒钟会向小程序发送一次事件,把当前的发给小程序,小程序拿到信息后,小程序的方法里边对他直接受了一个 toast。
打开小程序会看到每隔五秒会发送一个事件,如图:
以上就是两个事件的通道。