Hbuilder打包App隐藏系统状态栏

Posted 不靠谱的作曲家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hbuilder打包App隐藏系统状态栏相关的知识,希望对你有一定的参考价值。

场景:vue制作的混合app打包在安卓平板运行

初始化plus对象

created() 
    document.addEventListener('plusready', this.plusReady, false)  
,
methods: 
	plusReady () 
      var main = plus.android.runtimeMainActivity();  
      var windowMe = main.getWindow();  
      plus.android.importClass(windowMe);  
      var decorView = windowMe.getDecorView();  
      plus.android.importClass(decorView);  
      var View = plus.android.importClass("android.view.View");  
      decorView.setSystemUiVisibility(  
          View.SYSTEM_UI_FLAG_LAYOUT_STABLE |  
          View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |  
          View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |  
          View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |  
          View.SYSTEM_UI_FLAG_FULLSCREEN |  
          View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    ,

这样进入到软件中默认显示全屏,从设备底部或顶部滑动可以调出系统状态栏,就解决了每次退出平板就要使用鼠标或重启设备的问题

问题修复补充
1、当操作过系统的导航栏之后,导航栏就会一直显示,问题修复

document.addEventListener("visibilitychange", () => 
  if(document.hidden) 
   else 
    this.plusReady();
  
);

2、调用过输入法之后导航栏也会一直显示,问题修复

document.addEventListener("click", () => 
  this.plusReady();
)

3、检测设备运行终端,在windows设备上报错:plus is not defined

if (this.isMobile()) 
	console.log("安卓设备")
else
	console.log("windows")


isMobile() 
  let terminal = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
  return terminal;
,


以上是关于Hbuilder打包App隐藏系统状态栏的主要内容,如果未能解决你的问题,请参考以下文章

HBuilder打包成app 状态栏的颜色问题

hbuilder 打包app简易教程

hbuilder 配置app为沉浸式状态栏

hbuilder 打包 vueAPP

hbuilder 本地打包的app怎么打开

HBuilder wap2app封装去掉退出提示