gsgundam
gsgundam
  • 发布:2019-10-04 10:47
  • 更新:2019-12-25 19:01
  • 阅读:912

navite.js部分代码在uniapp的自定义组件模式下会报错

分类:uni-app

代码如下:

//隐藏安卓虚拟导航栏  
			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_HIDE_NAVIGATION |  
				View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY  
			);

其中,运行setSystemUiVisibility会报错:

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.;at com.android.internal.policy.DecorView.setSystemUiVisibility

在非自定义组件模式下并不会报错,但是切换自定义组件模式就报错了

向各位大佬求解!

2019-10-04 10:47 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

区别是自定义组件的js运行在一个独立的jscore下,而非自定义组件的js运行在一个隐藏的webview下

DCloud_Android_ST

DCloud_Android_ST

可用plus.navigator.hideSystemNavigation()实现你问题中的NJS功能。目前在自定义组件模式下,NJS暂时不支持UI操作的API。

h***@haomo-studio.com

h***@haomo-studio.com - 热爱技术的企业家

使用plus.navigator.hideSystemNavigation()会有问题,只要模拟键盘出现了,底部的导航仍然会弹出并且无法隐藏

该问题目前已经被锁定, 无法添加新回复