Phonegap KeyboardShrinksView和固定在iOS上的位置没有正确应用
我使用Phonegap的2.9.0版本,我希望当键盘出现时,我的WebView就像在Android手机应用程序中一样缩小。 我有页脚和标题元素在固定的位置,当键盘打开时会造成麻烦(页脚和页眉松动其固定的位置状态)。
我认为KeyboardShrinksView设置可以解决这个问题,根据phonegap文档: http ://docs.phonegap.com/en/2.9.0rc1/guide_project-settings_ios_index.md.html#Project%20Settings%20for%20iOS
但是,有很多尝试,我无法使其工作,WebView不缩小。
我在想也许它可能来自其他设置我的config.xml的偏好之间的冲突:
config.xml中
<gap:platform name="ios" /> <gap:platform name="android" /> <preference name="fullscreen" value="false" /> <preference name="webviewbounce" value="false" /> <preference name="orientation" value="portrait" /> <preference name="KeyboardShrinksView" value="true" />
或者,也许它可以来自元标记定义,特别是视口:
的index.html
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
你知道为什么它不工作? 或者你有解决这个问题的方法吗?
编辑:我已经看到,它改变了一些KeyboardShrinksView = true时,但当键盘打开,它隐藏我的内容的底部(包括我的页脚和字段),而不是调整我的整个内容。 我期待它将脚注放在键盘的顶部,对吗?
感谢您的帮助
是的 – 这是一个现在处理的痛苦。 目前还没有真正的解决办法,让它们像以前一样在iOS上运行。 就我个人而言,我目前在我的应用程序(一个用于iOS,另一个用于Android)中使用了两个不同的标签,它接近于iOS上的旧行为。 以下是我使用的:
<!-- IOS --> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />` <!-- ANDROID --> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1" />
我的config.xml设置是你所期望的:
<preference name="HideKeyboardFormAccessoryBar" value="true" /> <preference name="KeyboardShrinksView" value="false" />
这里有几个链接,以保持注意, 并保持窃听(即请求),cordova人最终解决它。
-
问题CB-4862: https ://issues.apache.org/jira/browse/CB-4862(这是核心问题线程,最初是closures的,但是在我刚刚发表的评论之后重新开放)
-
问题CB-5852: https ://issues.apache.org/jira/browse/CB-5852(这是CB-4862人们被告知可能存在的修复可能存在 – 但开发人员最初的testing显示,这不是一个真正的解决scheme悲哀)。
希望这些链接至less可以帮助你获得最新的有关keyboardshrink相关问题的最新信息。 如果其他人有铅/链接在这个请分享!
我通过在每次更改页面时调用此代码来修复它:
$('input').unbind('focusout'); $(document).on('focusout', 'input', function() { setTimeout(function() { window.scrollTo(document.body.scrollLeft, document.body.scrollTop); }, 500); });
- 内部导航被拒绝:iOS上的Cordova上的<allow-navigation not set>
- 我如何让一个cordova6.1应用程序在iOS网站上embedded一个iframe?
- 为什么PhoneGap总是显示默认的splashscreen图像?
- 在iOS上使用PhoneGap / Cordova和外部URL
- 离子模拟ios:会话无法启动
- 从Sencha Touch访问本地API /系统
- cordovaiOS位置消息
- PhoneGap iOS无法使用HTML 5播放video
- 苹果应用程序拒绝,因为Auth0 signUpLink在Cordova InAppBrowser中未打开,而是在系统浏览器(Safari)中打开,