如何防止键盘在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-keyboard ( https://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" />