代码如下:
//隐藏安卓虚拟导航栏  
            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在非自定义组件模式下并不会报错,但是切换自定义组件模式就报错了
向各位大佬求解!
 
             
             
             
			 
                                        
                                     
            
3 个回复
DCloud_heavensoft
区别是自定义组件的js运行在一个独立的jscore下,而非自定义组件的js运行在一个隐藏的webview下
DCloud_Android_ST
可用plus.navigator.hideSystemNavigation()实现你问题中的NJS功能。目前在自定义组件模式下,NJS暂时不支持UI操作的API。
h***@haomo-studio.com - 热爱技术的企业家
使用plus.navigator.hideSystemNavigation()会有问题,只要模拟键盘出现了,底部的导航仍然会弹出并且无法隐藏