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:在状态栏点击顶部滚动的主要内容,如果未能解决你的问题,请参考以下文章

通过点击状态栏滚动到 UITableView 的顶部

单击状态栏不会滚动到应用程序顶部(Trigger.io)

iOS Phonegap中的白色状态栏?

(iOS,Xcode)有没有办法覆盖“点击状态栏向上滚动”行为?

如何使用 Phonegap Build 删除 iOS 状态栏?

-webkit-overflow-scrolling:touch 和“点击状态栏滚动到顶部”