2012-07-22 62 views
1

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

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

有没有办法做到这一点?

问候

莱纳斯

+0

可能的重复http://stackoverflow.com/questions/4656387/how-to-detect-in-ios-webapp-when-switching-back-to-safari-from-background – Simon 2012-07-22 11:01:18

+0

为我们需要一个好的建议更多信息。是jQuery使用?有没有使用sencha,jqm等? phonegap/cordova在使用中? – liquid 2012-07-22 11:30:59

+0

@liquid我正在使用jQuery来获取点击开始呼叫的链接。没有其他框架正在使用。我试图使用$('html')。focus(),但它不起作用。 – Rufuhs 2012-07-22 11:53:00

回答

1

试试这个:

如果触发的链接调用设置的实际时间在localStorage的项目。

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

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

}) 

之后您需要在用户结束通话后阅读存储。 您可以在开始页面的document.ready中设置它。

在$

(文件)。就绪(函数(){})

// 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的使用使您可以存储键/值和数据不会丢失,如果用户停止应用程序或设备被自动锁定。

希望这会有所帮助。

ADDED:您甚至可以将JSON存储为localStorageItem中的值。因此,您可以设置呼叫ID并为您的用户实施呼叫历史记录。