【问题标题】:Phonegap: Scroll top on statusbar tapPhonegap:在状态栏点击顶部滚动
【发布时间】:2012-05-29 17:06:13
【问题描述】:

我正在使用 jQuery Mobile 和 Phonegap 实现一个 webapp。我缺少的一件事是:当点击状态栏时,应用程序应该滚动到顶部。

我已经看到,使用 Objective C 必须指示必须在点击时滚动到顶部的视图。是否可以使用 Javascript/Phonegap 做类似的事情?

【问题讨论】:

  • 状态栏不是应用的一部分。 Phonegap 无法注册任何点击。反正不用自己写插件。
  • 感谢您的回复。这对我来说很清楚。但是我不确定是否可以编写这样的插件,因为我必须在该插件中指出要滚动的视图。而且我所有的观点都不是Objective C类型,而是html。
  • 你说得对,我认为不可能:(

标签: ios cordova scroll statusbar


【解决方案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
});

【讨论】:

【解决方案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。
猜你喜欢
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 2011-11-02
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多