在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?