Phonegap: 点击状态栏时向上滚动

6

我正在使用jQuery Mobile和Phonegap实现一个Web应用程序。 我想要的一个功能是:当状态栏被点击时,应用程序应该回滚到顶部。

我已经看到,使用Objective C需要指示视图在触摸时需要向上滚动。是否可以使用JavaScript/Phonegap进行类似的操作?


1
状态栏不是应用程序的一部分。Phonegap 无法在其上注册任何点击事件。除非编写自己的插件。 - Jivings
谢谢您的回复。我明白了。但是我不确定是否总体上可以编写这样的插件,因为我必须在该插件中指示要滚动哪个视图。而且我的所有视图都不是Objective C类型,而是HTML。 - Chagemei
你说得对,我认为这是不可能的 :( - Jivings
3个回答

7

2016年9月22日更新

一切正常运作

插件ID已更改,请使用以下方式进行安装:

cordova plugin add cordova-plugin-statusbar

在iOS 10.0模拟器和运行9.3.5系统的iPhone 6s Plus上,使用cordova-6.3.1和cordova-ios-4.2.2进行测试。


官方状态栏插件具有此功能。 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
});

你确定吗?我在这个插件的文档中没有看到它。 - Yaron
是的,它运行得很好。这不在文档中,我在代码中找到了它:(第102行)https://github.com/apache/cordova-plugin-statusbar/blob/master/www/statusbar.js - guya

4

我一直在寻找这样的东西。我迫不及待地想试试它! - Cam Tullos
我也一直在寻找这样的东西。是否有像Adobe PhoneGap Build插件这样注册的东西? - nicholas
如果我添加了这个,应用程序在启动时会崩溃。我已按此处描述的添加了插件:https://build.phonegap.com/plugins/722 - psycho brm

0
如果在PhoneGap应用中显示的内容超出了WebView的边界,滚动将自动发生。
否则 - 例如,如果你只是使用-webkit-overflow-scrolling来滚动一个div - 你需要使用在这里找到的解决方案: 如何检测状态栏上的触摸事件 在scrollViewShouldScrollToTop中,你需要调用
[theWebView stringByEvaluatingJavaScriptFromString:"should_scroll_to_top"];

should_scroll_to_top 是你的 js 中的一个普通函数。


是的,我正在PhoneGap中使用固定的工具栏。因此,我的Webview内容不会超过Webview本身。由于我不太熟悉Obj C,因此我只理解其中的一部分,但它听起来好像可能是一个解决方案。我对理论上必须按照描述做的事情有正确吗:在PhoneGap中明确创建一个隐藏的ScrollView并应用其他提到的东西。但是:在这个解决方案的最后,它说,只有在没有其他视图响应这些事件时才能工作。据我所知,Webview正在对其进行反应。它仍然有效吗? - Chagemei
我在我的一个应用程序中使用了这个解决方案。由于我的内容与您的一样不大于Webview,因此我已禁用了Webview接收事件。它可以正常工作。我的JS函数检查当前页面并知道哪些div是可滚动的。 - memical

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接