我正在尝试重新编译适用于iOS 7的应用程序,因为到目前为止还没有任何旧的应用程序。 许多问题之一是我在UIWebViews中使用了一些输入。文字输入,拣货员等。
现在,当iOS 7闪亮的白色键盘出现时,网页中的所有底部固定元素(例如,确认按钮)都向上滚动,就好像虚拟键盘的“顶部”是我的UIWebView的新底部。这是与iOS6.x完全不同的行为
是否有任何魔术技巧可以使虚拟键盘行为像以前一样工作,而无需将JS / CSS注入webView?
答案 0 :(得分:44)
这解决了我的cordova应用程序的问题。我不确定它是否适用于你,但以防万一。
检查你的html元标记,如下所示:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
替换为:
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />
答案 1 :(得分:8)
在我们的案例中,一旦用户滚动,这将自行修复。因此,这是我们用来模拟任何blur
或input
上的textarea
滚动的修补程序:
$(document).on('blur', 'input, textarea', function () {
setTimeout(function () {
window.scrollTo(document.body.scrollLeft, document.body.scrollTop);
}, 0);
});
答案 2 :(得分:6)
我遇到了完全相同的问题&amp;经过两天的实验后放弃了。看起来: a)所有底部固定元件向上,使其底部偏移相对于键盘的顶部边缘 c)所有顶部固定元素保持原始位置(不要像过去那样向上移动) - 注意顶部绝对元素工作正常。
我找到的唯一解决方案是使用自定义iPad样式表替换所有使用绝对元素的固定元素,将css bottom属性设置为auto并使用top而不是
答案 3 :(得分:-1)
对不起,您的解决方案对我有用,但只有当比例设置为1.0时才有效。如果我将其设置为0.9,那么它就像是在你建议的修复之前。我将初始刻度,最大刻度和最小刻度设置为0.9,当键盘出现时固定对象的弹跳效果仍在发生。