uniapp APP里Andriod和iOS隐藏上下安全距离(去白边)导航栏解决方案,隐藏或设置透明
最近的需求需要沉浸式页面,有几点需要注意,目前测试ios不能单页面设置隐藏,只能全局。
环境:uniapp v2版本、hbuilderX
第一种方案:隐藏底部安全距离:
安卓端怎么改回来我这看不懂,大家有需求可以问问AI,代码也更好。 在第一个界面或随便一个界面script中设置。
<script> // #ifdef APP-PLUS // 判断当前环境是否为Android if (plus.os.name.toLowerCase() === 'android') { var Color = plus.android.importClass("android.graphics.Color"); const Window = plus.android.importClass("android.view.Window"); var mainActivity = plus.android.runtimeMainActivity(); var window_android = mainActivity.getWindow(); var WindowManager = plus.android.importClass("android.view.WindowManager"); var View = plus.android.importClass("android.view.View"); //直接隐藏 window_android.setFlags(Window.FLAG_FULLSCREEN, Window.FLAG_FULLSCREEN); window_android.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View .SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); //设置为全透明 window_android.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window_android.setNavigationBarColor(Color.TRANSPARENT); } // #endif export default { } </script>
IOS端
修改manifest.json
源码视图的代码,在·app-plus结构下复制safearea
{ "name": "xxx", "appid": "__UNI__xxxxxxx", "description": "", "versionName": "1.0.0", "versionCode": "100", "transformPx": false, "app-plus": { /*...隐藏...*/ /* 5+App特有相关 */ "safearea": { //安全区域配置,仅iOS平台生效 "bottom": { // 底部安全区域配置 "offset": "none" // 底部安全区域偏移,"none"表示不空出安全区域,"auto"自动计算空出安全区域,默认值为"none" }, "left": { //可选,JSON对象,左侧安全区域配置 "offset": "none" //可选,字符串类型,安全区域偏移值,可取值auto、none }, "right": { //可选,JSON对象,左侧安全区域配置 "offset": "none" //可选,字符串类型,安全区域偏移值,可取值auto、none } } /*...隐藏...*/ } /*...隐藏...*/ }
第二种方案:沉浸式导航栏
安卓端pages.json
的页面配置下修改pages/app-plus
,将titleNView设置为false,即可隐藏导航条。
如果设置全局的,请在manifest.json
文件里统一改,在"app-plus
"节点上添加
"pages": [ { "path": "pages/index/index", "style": { /*主要配置*/ "app-plus": { "titleNView": false,/*隐藏导航条安卓生效,如果全部页面的话可以在manifest加。*/ "bottom": "0", "contentAdjust": "false", "bounce": "none", "safearea": { "bottom": "none" }, /*这个据说配合index.html的meta使用的,没测试过,暂时放着。*/ "ios": { "viewport-fit": "cover" } } } } ]
IOS端主要是修改manifest.json
源码视图的代码,在app-plus
中的statusbar
属性·。
{ "name": "xxx", "appid": "__UNI__xxxxxxx", "description": "", "versionName": "1.0.0", "versionCode": "100", "transformPx": false, "app-plus": { /*...隐藏...*/ "statusbar": { //可选,JSON对象,应用启动后的系统状态栏相关配置 "immersed": true //可选,字符串类型,沉浸式状态栏样式,可取值none、suggestedDevice、supportedDevice }, } /*...隐藏...*/ }
附上uniapp manifest全部配置链接,有些配置比较新,属性值可能不一样。
参考文献:
1、基于Uni-app前端框架的SUMER UI3.0组件库
2、uniapp精仿支付宝UI界面源码下载,基于SumerUI一款仿支付宝APP
3、uniapp精仿微信源码,基于SumerUI一款仿微信APP应用
SUMER UI
【用于开发APP
、小程序
、H5网站
、毕业设计
…】
评论