脚本宝典收集整理的这篇文章主要介绍了WEEX-android返回键监听 (使用globalEvent),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
利用weex-android
全局监听globalEvent
做的一个双击退出的小功能
globalEvent
用于监听持久性事件,例如定位信息,陀螺仪等的变化。全局事件是需要额外APIs
处理的次要 API
。你能通过 addEventListener
注册事件监听,当你不再需要的时候,也可以通过 removeEventListener
取消事件监听官方文档
public void onBackPressed(){
Map<String,Object> params=new HashMap<>();
params.put("click","back");
mInstance.fireGlobalEventCallback("androidback",params);
exitByDoubleClick();
}
private void exitByDoubleClick() {
Timer tExit=null;
if(!isExit){
isExit=true;
Toast.makeText(this,"再按一次退出程序",Toast.LENGTH_SHORT).show();
tExit=new Timer();
tExit.schedule(new TimerTask() {
@Override
public void run() {
isExit=false;//取消退出
}
},2000);// 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务
}else{
finish();
System.exit(0);
}
}
这里需要注意mInstance
对象。开始的时候,我是自己新创建了一个WxInstance
但是发现在vue
视图中不能有效的监听到,发现视图使用的instance
跟我这新创建的
不是同一个对象。所以追了下代码,发现WXPageActivity
继承了一个AbsWeexActivity
,而在AbsWeexActivity
中有个mInstance
对象,我们使用的就是这个对象。
然后在vue
视图中注册全局监听事件
<script>
const globalEvent = weex.requireModule('globalEvent')
const eventModule = weex.requireModule('event')
export default {
name: 'App',
created: function () {
var objThis = this
globalEvent.addEventListener('androidback', function (e) {
if(objThis.$route.path=='/index'||objThis.$route.path=='/login')
{
eventModule.closeApp()
}
else
{
objThis.$router.go(-1)
}
})
},
}
</script>
eventModule.closeApp()
是在eventModule
中新增的module方法.module
的使用前面我们说过了 WEEX-android播放背景音乐 (使用module)
@JSMethod(uiThread = false)
public void closeApp() {
System.exit(0);
}
以上是脚本宝典为你收集整理的WEEX-android返回键监听 (使用globalEvent)全部内容,希望文章能够帮你解决WEEX-android返回键监听 (使用globalEvent)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。