小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
用iphone手机在微信6.7.4版本上随便进一个有表单的h5页面试一下就可以复现
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
应该是进入有 web-view 组件后拉起系统键盘或 picker 消失后会导致页面 contentSize 有变化,需要用户主动滚动页面才能恢复。
这个是微信 6.7.4 使用 XCode10 打包后引入的系统 bug,我们会在 6.7.5 版本上线兼容逻辑,规避大部分有问题的情况。这个 bug 已经提交到苹果那边了,看他们何时会发布系统修复版本吧。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
好的
你们也可以尝试在页面修复一下,主动触发页面 scroll 一下就能恢复,就算微信这边发版本修复了,你们页面在其他 App 也会有类似的问题的。
好的,谢谢
还在吗?帮我看下这个bug,谢谢。https://developers.weixin.qq.com/community/develop/doc/000e02379cc2d0ccbb88fccac54c00
这个问题在iOS13下 又出现了,之前设置过滚动也不行。。
这个应该算是苹果系统的一个bug,当键盘收起后不会自动重绘body,需要手动滑动一下才能恢复正常。前端可以使用document.body.scrollIntoView()来解决。这里是scrollIntoView()的详细介绍:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView具体代码块如下:
// ios键盘弹起收回body不会重绘
(/iphone|ipod|ipad/i.test(navigator.appVersion)) && document.addEventListener('blur', (e) => {
(/iphone|ipod|ipad/i.test(navigator.appVersion)) && document.addEventListener(
'blur'
, (e) => {
['input', 'textarea'].includes(e.target.localName) && document.body.scrollIntoView(false)
[
'input'
,
'textarea'
].includes(e.target.localName) && document.body.scrollIntoView(
false
)
}, true);
},
true
);
function fixScrollTop () { setTimeout(() => { document.body.scrollTop = document.body.scrollHeight }, 100)
function
fixScrollTop () {
setTimeout(() => {
document.body.scrollTop = document.body.scrollHeight
}, 100)
}
window.addEventListener('focusout', fixScrollTop)
特意来感谢点赞大佬的,解决了,angular写的,谢谢!!
上午解决的。
判断下iOS设备。执行下面代码,用的事件委托,每次输入框或者下拉框离开焦点时,触发一下页面重绘
inputBlur () {
let $view = document.querySelector(
'.yd-scrollview'
if
(!$view)
return
;
$view.setAttribute(
'tabIndex'
, 1);
$view.addEventListener(
(e) {
([
'INPUT'
'SELECT'
].indexOf(e.target.tagName) > -1) {
document.body && (document.body.scrollTop = document.body.scrollTop);
虽然 blur 并不能冒泡,但addEventListener第三个参数设置为true即可。
如果是jQuery,那事件委托就更简单了
$(document).ready(
(){
(
let scroll_top = 0;
let input_focus=
$(document).on(
"focus"
"input,select,textarea"
,()=>{
input_focus=
scroll_top = $(document).scrollTop();
});
"blur"
setTimeout(
(!input_focus){
$(document).scrollTop(scroll_top);
},100);
}());
是键盘收起后页面无法自动复位?
是的
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
应该是进入有 web-view 组件后拉起系统键盘或 picker 消失后会导致页面 contentSize 有变化,需要用户主动滚动页面才能恢复。
这个是微信 6.7.4 使用 XCode10 打包后引入的系统 bug,我们会在 6.7.5 版本上线兼容逻辑,规避大部分有问题的情况。这个 bug 已经提交到苹果那边了,看他们何时会发布系统修复版本吧。
好的
你们也可以尝试在页面修复一下,主动触发页面 scroll 一下就能恢复,就算微信这边发版本修复了,你们页面在其他 App 也会有类似的问题的。
好的,谢谢
还在吗?帮我看下这个bug,谢谢。https://developers.weixin.qq.com/community/develop/doc/000e02379cc2d0ccbb88fccac54c00
这个问题在iOS13下 又出现了,之前设置过滚动也不行。。
这个应该算是苹果系统的一个bug,当键盘收起后不会自动重绘body,需要手动滑动一下才能恢复正常。前端可以使用document.body.scrollIntoView()来解决。这里是scrollIntoView()的详细介绍:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView具体代码块如下:
// ios键盘弹起收回body不会重绘
(/iphone|ipod|ipad/i.test(navigator.appVersion)) && document.addEventListener(
'blur'
, (e) => {
[
'input'
,
'textarea'
].includes(e.target.localName) && document.body.scrollIntoView(
false
)
},
true
);
function
fixScrollTop () {
setTimeout(() => {
document.body.scrollTop = document.body.scrollHeight
}, 100)
}
window.addEventListener('focusout', fixScrollTop)
特意来感谢点赞大佬的,解决了,angular写的,谢谢!!
上午解决的。
判断下iOS设备。执行下面代码,用的事件委托,每次输入框或者下拉框离开焦点时,触发一下页面重绘
inputBlur () {
let $view = document.querySelector(
'.yd-scrollview'
);
if
(!$view)
return
;
$view.setAttribute(
'tabIndex'
, 1);
$view.addEventListener(
'blur'
,
function
(e) {
if
([
'INPUT'
,
'SELECT'
].indexOf(e.target.tagName) > -1) {
document.body && (document.body.scrollTop = document.body.scrollTop);
}
},
true
);
},
虽然 blur 并不能冒泡,但addEventListener第三个参数设置为true即可。
如果是jQuery,那事件委托就更简单了
$(document).ready(
function
(){
(
function
(){
let scroll_top = 0;
let input_focus=
false
;
$(document).on(
"focus"
,
"input,select,textarea"
,()=>{
input_focus=
true
;
scroll_top = $(document).scrollTop();
});
$(document).on(
"blur"
,
"input,select,textarea"
,()=>{
input_focus=
false
;
setTimeout(
function
(){
if
(!input_focus){
$(document).scrollTop(scroll_top);
}
},100);
});
}());
});
是键盘收起后页面无法自动复位?
是的
还在吗?帮我看下这个bug,谢谢。https://developers.weixin.qq.com/community/develop/doc/000e02379cc2d0ccbb88fccac54c00