如何防止键盘在iOS应用程序使用phonegap推高webview

当屏幕底部的input字段有焦点时,键盘会向上推动我的webview,页面的上半部分不再可见。

我想防止键盘推动web视图。

任何人有一个想法?

在焦点上,设置window.scrollTo(0,0); 这可以防止键盘完全推高webview

$('input').on('focus', function(e) { e.preventDefault(); e.stopPropagation(); window.scrollTo(0,0); //the second 0 marks the Y scroll pos. Setting this to ie 100 will push the screen up by 100px. }); 

如果你不想为你的Y滚动位置设置一个静态值 ,可以随意使用我写的这个简短的插件,它自动alignmentinput栏下的键盘 。 这不是完美的,但它做的工作。 就像上面显示的那样把焦点叫做焦点:

 setKeyboardPos(e.target.id); 

使用driftyco / ionic-plugins-keyboardhttps://github.com/driftyco/ionic-plugins-keyboard )解决了这个问题

首先安装键盘插件:

 cordova plugin add com.ionic.keyboard 

现在你可以或者禁用本地键盘滚动:

 cordova.plugins.Keyboard.disableScroll(true); 

II)native.keyboardshow中监听native.keyboardshow事件,并在键盘显示时回滚到顶部:

 window.addEventListener('native.keyboardshow', keyboardShowHandler); function keyboardShowHandler(e){ setTimeout(function() { $('html, body').animate({ scrollTop: 0 }, 1000); }, 0); } 

我使用了II)方法,因为我喜欢在我的情况下animation滚动。 如果你不想和animation一起用window.scrollTo(0, 0);replace相应的行window.scrollTo(0, 0); 。 但恐怕在这种情况下,你将不得不面对这个Imskull所写的“垃圾抖动animation”。

我有同样的问题,上面的解决scheme都没有帮助我,但我find了一个简单的方法来通过它。

在platform / android文件夹中打开manifest.xml并在主activity标签中用android:windowSoftInputMode =“adjustPan”replaceandroid:windowSoftInputMode =“adjustResize”

现在键盘将覆盖您的内容。

我希望这会帮助别人。

请确保在你的config.xml

 <preference name="KeyboardShrinksView" value="true" />