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

如何使用phonegap在iOS应用程序中防止键盘向上推webview,ios,cordova,webview,keyboard,Ios,Cordova,Webview,Keyboard,当屏幕底部的输入字段具有焦点时,键盘会向上推“我的网络视图”,页面的上部不再可见 我想防止键盘向上推webview 有人有主意吗?在对焦时,将窗口设置为(0,0)这可以防止键盘完全向上推webview $('input').on('focus', function(e) { e.preventDefault(); e.stopPropagation(); window.scrollTo(0,0); //the second 0 marks the Y scroll pos. Se

当屏幕底部的输入字段具有焦点时,键盘会向上推“我的网络视图”,页面的上部不再可见

我想防止键盘向上推webview


有人有主意吗?

在对焦时,将窗口设置为(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 i.e. 100 will push the screen up by 100px. 
});
如果您不想为Y滚动位置设置静态值,请随意使用。这并不完美,但它确实起到了作用。只需将其称为焦点,如上所示:

setKeyboardPos(e.target.id);
使用Floftyco/ionic插件键盘()解决了此问题

首先安装键盘插件:

cordova plugin add com.ionic.keyboard
现在,您可以禁用本机键盘滚动:

cordova.plugins.Keyboard.disableScroll(true);
II)
devicerady
中收听
native.keyboardshow
事件,并在键盘显示以下内容时返回顶部:

window.addEventListener('native.keyboardshow', keyboardShowHandler);

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

我使用了II)方法,因为我喜欢我的案例中的动画滚动。如果不想使用动画,请将相应的行替换为
window.scrollTo(0,0)。但我担心,在这种情况下,您将不得不再次处理Imskull所写的“垃圾抖动动画”。

我也有同样的问题,上面的解决方案都没有帮助我 但我找到了一个简单的方法来克服它

在platform/android文件夹中打开manifest.xml,并在主活动标记中将android:windowSoftInputMode=“adjustResize”属性替换为android:windowSoftInputMode=“adjustPan”

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


我希望它能帮助别人。

请在config.xml中确保这一点

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

在我自己找到答案之前,我已经仔细阅读了100个答案。因此,这里是如何禁用IOS上的UI滚动。 只需在cordova加载时添加此项。 请安装:

cordova plugin add ionic-plugin-keyboard --save
然后执行
cordova prepare
将这个新插件加载到您的www文件夹中

document.addEventListener('deviceready', function(e){
    window.addEventListener('native.keyboardshow', function () {
            cordova.plugins.Keyboard.disableScroll(true);
        });
});

就这样。请让我知道这是否有用。我很乐意回答更多问题。

将此选项添加到
config.xml
中对我起了作用

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

它在我的iPad2/iOS6上不起作用。“setTimeout(function(){windows.scrollTo(0,0);},0)”可以修复它,但有时您仍然可以看到轻微的抖动动画。我认为应该是windows而不是windows如果使用WKWebView(iOS),它不允许cordova.plugins.Keyboard.disableScroll(true),似乎我将尝试II)并看看会发生什么。谢谢你为我节省了很多时间。问题是针对iOS,而不是Android,这个答案是如何获得选票的?这应该是公认的答案,因为它解决了问题,正确的方法现代有没有类似的选项?它似乎不再存在。从cordova 8X起,此插件被删除此插件已被弃用-使用添加插件“cordova插件离子键盘”,暂时解决了iOS 13的问题,同时通过安装cordova插件离子键盘插件解决了我的问题。谢谢
cordova plugin add cordova-plugin-keyboard