在Android Phonegap App中填写时防止滚动输入

Posted

技术标签:

【中文标题】在Android Phonegap App中填写时防止滚动输入【英文标题】:Prevent scrolling to input when filling it in Android Phonegap App 【发布时间】:2014-10-01 23:50:55 【问题描述】:

我正在使用带有 Cordova 3.5 版的 Telerik AppBuilder

我的问题是,我不希望我的应用程序中的 webview 滚动。每次需要滚动时,我都想使用 iScroll,我将通过我的代码处理滚动。

如果输入获得焦点并且由于 iScroll 中的滚动而不可见,则应用会自动滚动 webview。

我使用清单中的以下代码阻止了在 android 中滚动聚焦输入:

<preference name="android-windowSoftInputMode" value="adjustPan|stateVisible" />

为了防止打字时滚动,我的下一个想法是:

    防止默认按键 存储按下的键 滚动到我在 iScroll 中的输入 将键粘贴到输入中(现在它肯定可见,上面的级别不会滚动 web 视图)

但android v4.4.4中的以下代码不会阻止默认:

    $input.on( 'keypress', function(e)
    
        e.preventDefault();
        e.stopPropagation();
        return false;
    );

这是一个错误吗? 有什么解决方法吗?

编辑:

要查看浏览器正在更改什么属性,以便我可以将其更改回来,我查看了一些元素,但找不到它:

    $(window).scrollTop() -> 不变。 iScroll 使用的元素的边距顶部和顶部 -> 不变。

【问题讨论】:

【参考方案1】:

我知道这是一个老问题, 但我认为你的问题是当keypress事件被触发时,'keydown'事件已经被发送到输入,这是发送实际键的事件。之后按住字符键触发按键。 所以你应该尽量防止默认的'keydown'事件,并且可能还有'keypress',以防在按住时重复字母。

$input.on( 'keydown keypress', function(e)
    
        e.preventDefault();
    );

【讨论】:

以上是关于在Android Phonegap App中填写时防止滚动输入的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap IOS Android如何保护APP和APK中的信息www

在 Android 上为 PhoneGap App 更改应用程序主题(使用 phonegap Build)

Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

如何为 Android phonegap 1.8.0 应用启用 cookie?

在 Blackberry(服务器端)中为 PhoneGap App 推送通知

我需要在cordova/phonegap项目的所有html文件中添加app.initialize()吗