Appearance
实践总结
遮罩层滚动穿透
@touchmove.native.prevent 设置在 遮罩层上
App - IOS 端软键盘上方横条去除方案
pages.json
json
"app-plus": {
"softinputNavBar": "none"
}js:动态设置softinputNavBar
javascript
this.$scope.$getAppWebview().setStyle({
softinputNavBar: 'none'
})
//this.$scope.$getAppWebview()相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效,非v3编译模式使用this.$mp.page.$getAppWebview()App - 关于软键盘弹出的逻辑说明
App 平台软键盘弹出有 adjustResize|adjustPan 两种模式,默认为 ad~justPan 模式,小程序平台只支持 adjustPan 模式,H5 平台因不同浏览器而异
adjustResize:软键盘弹出时,webview 窗体高度挤压。屏幕高度=webview窗体高度+软键盘高度adjustPan:软键盘弹出时,webview 窗体高度不变,窗体上推
pages.json
json
"app-plus": {
"softinputMode": "adjustResize"
}Tips
adjustResize模式在Android App上,因为要重设 webview 窗体高度,可能会在个别安卓机型闪现灰屏或漏出下层页面内容。- 小程序端在 input 聚焦期间,避免使用
css动画。 - 禁止点击其他位置收起键盘,可以监听
touch事件并使用prevent修饰符(仅支持 App-v3、H5,其他平台可以通过设置focus来使输入框重新获取焦点),例如在确认按钮上使用:@touchend.prevent="onTap"
App - 关于软键盘收起的逻辑说明
Android:软键盘弹出,点击 back 或点击非置焦区域可收起软键盘iOS:软键盘上方有带有“完成”的横条,则需要点完成才能收起键盘;如果无横条,则点击非*input/textarea区域*可收起软键盘
隐藏软键盘 api:
uni.hideKeyboard()
Wx - 体验版接口失败
场景:微信小程序体验版,不打开开发调试,接口调用失败
原因 1:体验版、正式版小程序需要校验域名是否存在后台白名单。
微信开发平台(软件) -> 详情 -> 本地设置 -> 不进行校验域名...
将 不进行校验域名... 勾选上
原因 2:需要配置合法域名
微信小程序平台() -> 开发 -> 开发设置 -> 服务器域名
在服务器域名进行配置