跳到主要内容
版本:1.0.0

Tabbar IOS 小黑条适配开关

简介

MorJS 默认提供的 tabbar 已经存在了 iphone 小黑条的兼容,不需要做特殊的关注。通过浏览器控制台调试可以看到,MorJStiga-tabbar-item 设置了如下样式:

:host {
padding-bottom: calc(8px + constant(safe-area-inset-bottom));
padding-bottom: calc(8px + env(safe-area-inset-bottom));
}

背景

某些容器内嵌时默认提供了小黑条适配逻辑,例如钉钉。这个时候会导致整个页面会被向上推 2 * safe-area-inset-bottom 的距离,所以业务侧希望存在一个开关控制 MorJS 提供的小黑条适配功能。

如何使用

app.json 配置 tabbar 的地方增加 disableSafeAreaPaddingUARegex 字段,支持 Array<String> 和 String 类型传值。这里传入需要屏蔽的容器的 UserAgent 关键字即可。

比如钉钉浏览器内,我们指定 DingTalk 即可,因为其完整 UA 如下,通过该值就可以判定为钉钉内嵌场景:

Mozilla/5.0 (Linux; U; Android 12; zh-CN; M2102J2SC Build/SKQ1.211006.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/69.0.3497.100 UWS/3.22.1.210 Mobile Safari/537.36 AliApp(DingTalk/6.5.20) com.alibaba.android.rimet/24646881 Channel/700159 language/zh-CN abi/64 UT4Aplus/0.2.25 colorScheme/light

完整的配置参考如下 👇🏻:

  "tabBar": {
"textColor": "#dddddd",
"selectedColor": "#49a9ee",
"backgroundColor": "#ffffff",
// "disableSafeAreaPaddingUARegex": ["DingTalk", "Alipay"], // Array<String> 传值
"disableSafeAreaPaddingUARegex": "DingTalk, // String 传值
"items": [
{
"pagePath": "pages/index/index",
"name": "首页"
},
{
"pagePath": "pages/map/index",
"name": "日志"
}
]
},