【问题标题】:How to detect focus when reopening Safari on iPhone?在 iPhone 上重新打开 Safari 时如何检测焦点?
【发布时间】:2012-07-22 10:23:01
【问题描述】:

我有一个适用于 iPhone 的网络应用程序,我需要在网页处于焦点时触发 Javascript 函数,换句话说,当 Safari 打开时。

我想要完成的是在用户单击电话链接并开始通话时以某种方式启动计时器。通话结束时,Safari 再次弹出,计时器结束。

有什么办法吗?

最好的问候

莱纳斯

【问题讨论】:

  • 对于一个好的建议,我们需要更多信息。使用jquery吗?有sencha,jqm等的用法吗?正在使用 phonegap/cordova?
  • @liquid 我正在使用 jQuery 来点击开始通话的链接。没有使用其他框架。我曾尝试使用 $('html').focus() 但它不起作用。
  • 所以你有一个网页,把它放在主屏幕上,用户点击开始通话,你想跟踪时间,然后你想在 safari-browser 中打开页面来显示它。这是正确的吗?
  • @liquid 完全正确。调用后它已经打开了网页,所以我需要的只是触发一个函数,该函数将显示点击链接和页面焦点之间的时间!

标签: javascript jquery iphone focus mobile-safari


【解决方案1】:

试试这个:

如果您触发调用链接,请在 localStorage-item 中设置实际时间。

$("#yourButton").click(function() {

  var actualTime = new Date().getTime();
  window.localStorage.setItem('callStart', actualTime);

})

之后,您需要在用户结束通话后读取存储。 您可以在打开页面的 document.ready 中进行设置。

在 $(document).ready(function() {})中

// check for the localStorageItem
if (window.localStorage.getItem('callStart')) {

  // get it
  var timeStart = window.localStorage.getItem('callStart');

  var now = new Date().getTime();

  /*
   Now calculate here the difference now - timeStart
   and you will get seconds, minutes or whatever you want
  */

  // !!! Dont forget to clear the localStorageItem
  window.localStorage.removeItem('callStart');

}

这是我会尝试的。 HTML5-localStorage 的使用使您可以存储键/值,并且如果用户停止应用或设备自动锁定,数据不会丢失。

希望这会有所帮助。

添加:您甚至可以将 JSON 作为值存储在 localStorageItem 中。因此,您可以为您的用户设置一个 callID 并实现一个呼叫历史记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2015-08-16
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多