2012-10-22 109 views
0

我的應用程序有一個應用程序在後臺時觸發的計時器,但是,由於ios怪癖,我的onPause函數在應用程序恢復之前未被觸發。我一直在研究如何從obj-C中觸發一個JavaScript功能,但似乎無法使它工作。當應用程序進入後臺時啓動JavaScript函數

我有以下代碼

// CUSTOM CODE TO DETECT APP STATE 
- (void)applicationDidEnterBackground:(UIApplication *)application { 

NSString* jsString = [NSString stringWithFormat:@"onPause;"]; 
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString]; 

NSLog(@"OBJ-C paused"); 

}

我的js代碼看起來像這樣;

function onPause() { 
      console.log("JS paused"); 
     } 

當應用程序進入後臺,我似乎我的OBJ-C日誌,但不能讓JS日誌,當我啓動應用程序備份,計時器還沒有暫停。

任何人都可以提供幫助,或者告訴我我做錯了什麼,我沒有使用OBJ-C的經驗,並且使用Phonegap 2.1.0。

回答

0

已解決! 在以下鏈接here。有2件沒有記錄的事件;辭職和積極,這使得它的工作應該爲我的目的。

document.addEventListener("resign", resign, false); 
document.addEventListener("active", active, false); 

     function resign() { 
      // pause code fired 
     } 

     function active() { 
      //resume code fired 
     } 

希望它有幫助!

0

嘗試使用applicationWillResignActive:

如果應用程序已經發送到後臺,該應用程序可能不再反應。

+0

感謝您的回覆,但這沒有奏效,js函數沒有console.log,定時器仍然繼續運行 – JPK

相關問題