vue+hbuilder监听安卓返回键问题

1.监听安卓返回键问题

效果:在一级页面按一下返回键提示退出应用,按两下退出应用;在其它页面中,按一下返回上个历史页面

1
2
import mui from ‘./assets/js/mui.min.js‘
Vue.prototype.$mui = mui;

在一级页面mounted时

vue+hbuilder监听安卓返回键问题
 1 this.$mui.plusReady( () =>{
 2 var backcount = 0;
 3 this.$mui.back = ()=> {
 4 if (this.$mui.os.ios) return;
 5 if (backcount > 0) {
 6 if (window.plus) plus.runtime.quit();
 7 return;
 8 };
 9 this.$layer.msg(‘再点击一次退出应用!‘)
10 backcount++;
11 setTimeout( () =>{
12 backcount = 0;
13 }, 2000);
14 };
15 })
vue+hbuilder监听安卓返回键问题

 

 在其它页面mounted时

1 this.$mui.plusReady(() => {
2 this.$mui.back = () => {
3 this.$router.go(-1);
4 };
5 });

 

在每次组件加载时都重写一下返回按钮的事件,如果不重写,此页面就会使用上个页面中定义的返回事件,这个事件可能是退出app也可能是返回上次历史页面,这样就会造成事件冲突,所以在每次组件加载时都重写返回事件.

2.键盘弹起会把固定在底部的导航顶上去

vue+hbuilder监听安卓返回键问题
data() {
    return {
      docmHeight: document.documentElement.clientHeight, //默认屏幕高度
      showHeight: document.documentElement.clientHeight, //实时屏幕高度
      hidshow: true //显示或者隐藏footer
    };
  },
  mounted() {
    // window.onresize监听页面高度的变化
    window.onresize = () => {
      return (() => {
        this.showHeight = document.body.clientHeight;
      })();
    };
  },
  watch: {
    showHeight: function() {
      if (this.docmHeight > this.showHeight) {
        this.hidshow = false;
      } else {
        this.hidshow = true;
      }
    }
  }
vue+hbuilder监听安卓返回键问题

注意document要撑满屏幕高度!

参考地址:https://www.jianshu.com/p/210fbc846544

3.切换页面的转场效果使用:vueg

参考网址:https://github.com/jaweii/vueg

4.上拉加载下拉刷新使用:mescroll

参考网址:http://www.mescroll.com/

5.设置沉浸式

vue+hbuilder监听安卓返回键问题
配置manifest.json
"plus": {
    "statusbar": {
        "immersed": true 
    },


    "google": {
        "immersedStatusbar": true,
    }
}
vue+hbuilder监听安卓返回键问题

获取状态栏高度,可以使用mui提供的方法,也可以使用js  :  window.screen.height - window.innerHeight,

然后把这个高度给顶部导航和某些页面加上上边距就行了

vue+hbuilder监听安卓返回键问题

上一篇:Leetcode 283.移动零


下一篇:记一次 Android 客户端的逆向