Weex中拦截android的回退键是否有现成的方法

单页面模式下可以通过给顶级标签加上@androidback="event" 来拦截。对于非单页面模式,该如何监听返回键盘?

阅读 7k
5 个回答

可以这么做:
1.在android原生层面监听onBackPressed事件:

public void onBackPressed(){
        Map<String,Object> params=new HashMap<>();
        params.put("name","yulsh");
        wxInstance.fireGlobalEventCallback("androidback",params);
    }

2.在*.vue 里面监听androidback事件

var globalEvent = weex.requireModule('globalEvent'); 
//注意这里跟官网提到的引入方式是不同的.官网是:var globalEvent = require('@weex-module/globalEvent');
//显然是不对的。监听的方法建议在mounted事件里面写:
globalEvent.addEventListener("androidback", function (e) {
//console.log("on back pressed")
});

一样吧,这个androidback事件,就是监听的ActivityonBackPressed.

我是这么解决的:

  • Android端到Weex端 —— 使用重写Android的onBackPressed方法发送全局事件 globalEvent 给Weex,Weex接收。

  • Weex端到Android端 —— 通过自定义 Module 来实现Android端Activity的退出。

具体可以看我的博客Weex控制Android返回键解决方案

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进