Phonegap:在状态栏点击顶部滚动
Posted
技术标签:
【中文标题】Phonegap:在状态栏点击顶部滚动【英文标题】:Phonegap: Scroll top on statusbar tap 【发布时间】:2012-05-29 17:06:13 【问题描述】:我正在使用 jQuery Mobile 和 Phonegap 实现一个 webapp。我缺少的一件事是:当点击状态栏时,应用程序应该滚动到顶部。
我已经看到,使用 Objective C 必须指示必须在点击时滚动到顶部的视图。是否可以使用 javascript/Phonegap 做类似的事情?
【问题讨论】:
状态栏不是应用的一部分。 Phonegap 无法注册任何点击。反正不用自己写插件。 感谢您的回复。这对我来说很清楚。但是我不确定是否可以编写这样的插件,因为我必须在该插件中指出要滚动的视图。而且我所有的观点都不是Objective C类型,而是html。 你说得对,我认为不可能:( 【参考方案1】:22.9.2016 更新
一切正常
插件 ID 已更改,请使用以下方式安装:
cordova plugin add cordova-plugin-statusbar
在 ios 10.0 模拟器中使用 cordova-6.3.1 cordova-ios-4.2.2 和运行 9.3.5 的 iPhone 6s Plus 进行测试。
官方的状态栏插件有这个功能。 https://github.com/apache/cordova-plugin-statusbar
安装:
cordova plugin add org.apache.cordova.statusbar
在您的 javascript 中:
window.addEventListener('statusTap', function()
//scroll-up or do whatever you want
);
【讨论】:
你确定吗?我在这个插件的文档中看不到它。 是的,效果很好。它不在文档中,我在代码中找到它:(第 102 行)github.com/apache/cordova-plugin-statusbar/blob/master/www/…【参考方案2】:我写了一个插件来解决这个问题
https://github.com/j-mcnally/cordova-statusTap
您可以在状态栏上注册点击事件并在代码中处理这一切。带有事件监听器。
【讨论】:
我一直在寻找这样的东西。我迫不及待想尝试一下! 我也一直在寻找那个。有没有像这样注册为 adobe phonegap 构建插件的东西。 如果我添加它,应用程序只会在启动时崩溃。我已经添加了这里描述的插件:build.phonegap.com/plugins/722【参考方案3】:如果您在 phonegap 应用中显示的内容大于 webview 的范围,则滚动会自动发生。
否则 - 例如,如果您只是使用 -webkit-overflow-scrolling 滚动 div - 您需要使用此处找到的解决方案: How to detect touches in status bar
在scrollViewShouldScrollToTop中需要调用
[theWebView stringByEvaluatingJavaScriptFromString:"should_scroll_to_top"];
should_scroll_to_top 是你的 js 中的一个普通函数。
【讨论】:
是的,我在 PhoneGap 中使用固定工具栏。因此,我的 webview 的内容并不比 webview 本身大。由于我对 Obj C 不是很熟悉,我只了解其中的一部分,但听起来好像它可能是一个解决方案。我对吗,理论上我必须按照描述的那样做:在 PhoneGap 中显式创建一个隐藏的 ScrollView 并应用那里提到的其他内容。但是:在这个解决方案的最后说,它只有在没有其他视图对这些事件做出反应的情况下才有效。据我了解,webview 正在对它做出反应。还能用吗? 我在我的一个应用程序中使用了这个解决方案。因为我的内容和你的一样,没有 webview 大,所以我禁用了 webview 接收事件。它有效。我的 js 函数检查哪个页面是当前页面并知道它有哪些可滚动的 div。以上是关于Phonegap:在状态栏点击顶部滚动的主要内容,如果未能解决你的问题,请参考以下文章
(iOS,Xcode)有没有办法覆盖“点击状态栏向上滚动”行为?