我正在尝试重新编译iOS 7的应用程序,因为迄今为止没有任何旧的工作。 许多问题之一是我在UIWebViews中使用了一些输入。文本输入,拾取等移动固定定位元素的iOS 7输入元素
现在,当iOS 7闪亮的白色键盘出现时,网页中的所有底部固定元素(例如确认按钮)都会向上滚动,就好像虚拟键盘的“顶部”一样是我的UIWebView的新底部。这与iOS6.x有着本质上不同的行为
有没有什么魔术让虚拟键盘行为像过去一样工作,而不向JSView注入JS/CSS?
我正在尝试重新编译iOS 7的应用程序,因为迄今为止没有任何旧的工作。 许多问题之一是我在UIWebViews中使用了一些输入。文本输入,拾取等移动固定定位元素的iOS 7输入元素
现在,当iOS 7闪亮的白色键盘出现时,网页中的所有底部固定元素(例如确认按钮)都会向上滚动,就好像虚拟键盘的“顶部”一样是我的UIWebView的新底部。这与iOS6.x有着本质上不同的行为
有没有什么魔术让虚拟键盘行为像过去一样工作,而不向JSView注入JS/CSS?
这解决了我的科尔多瓦应用程序的问题。我不确定它是否适用于您,但为了以防万一。
检查你的HTML meta标签这样的事情:
<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" />
我遇到一模一样的问题&跑试验后两天就放弃了。看起来如下:a)所有底部固定元件向上,使得它们的底部偏移量相对于键盘的顶部边缘 c)所有顶部固定的元件保持其原始位置(不要像以前那样向上移动) - 请注意,顶级绝对元素正常工作。
我发现的唯一的解决办法是有一个自定义的iPad样式表替换绝对元素的所有固定元素,设置CSS bottom属性,以汽车,采用自顶而不是
Opposum,您的解决方案为我工作,但只有当规模被设置为1.0。如果我将它设置为0.9,那么它会像你之前建议的修复程序那样。当键盘出现时,我将初始缩放比例,最大缩放比例和最小缩放比例设置为0.9以及固定对象的弹跳效果。
与meta的内容混在一起,似乎是最小规模问题。当被忽略时,存在定位问题。设置为小于1.0的值时,存在已解决头寸的问题。当设置为大于或等于1.0的值时,解决了位置固定问题。 –
这不是一个答案,而只是一个观察;因此属于一个音符。 – Lev
在我们这种情况下,只要用户滚动,就会自行修复。因此,这是我们一直在使用模拟上blur
滚动任何input
或textarea
修复:
$(document).on('blur', 'input, textarea', function() {
setTimeout(function() {
window.scrollTo(document.body.scrollLeft, document.body.scrollTop);
}, 0);
});
强制像这样的滚动对我有效。下面的视口修复*可以*工作,但也可能导致Cordova应用程序出现问题,其中width = device-width,height = device-height可能导致滚动问题。 https://issues.apache.org/jira/browse/CB-4323 – zungaphobia
这个解决方案似乎是唯一一个不会破坏任何东西的解决方案。您也可以检查用户代理,将其限制为仅限移动设备。 var is_mobile = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/ i); –
很乐意帮忙!随意接受答案,让其他人可以看到:) – Opossum
你有没有尝试过与景观应用程序?在横向上的“设备高度”仍然是1024,因此屏幕底部不在视野范围内。 –
我的应用程序旋转到风景转身时,我还没有看到这个问题。如果我看到它,我会让你知道。 – Opossum