做了个weex项目,发现监听安卓的物理后退键是一个头痛的问题,知道最近才发现一个很好的解决方案,现在记录下来,供其他人了解
Android代码:
@Override
public void onBackPressed() {
//获取根组件
WXComponent comp = mInstance.getRootComponent();
if (comp != null) {
//判断根组件中的事件是否包含onBackPressed事件
if (comp.getDomObject().getEvents().contains("onBackPressed")) {
//发送onBackPressed事件
mInstance.fireEvent(comp.getRef(), "onBackPressed");
return;
}
}
//安卓默认后退处理
super.onBackPressed();
}
Weex代码
<template>
<div class="container" @onBackPressed="onBackPressed">
</div>
</template>
<script>
const modal = weex.requireModule('modal')
export default {
data () {
return {
}
},
methods: {
onBackPressed () {
modal.alert({
message: 'onBackPressed'
}, () => {})
},
}
}
</script>
<style>
.container{
background-color: #eff3f6;
}
</style>