1

我有一个 phonegap 应用程序,想在应用程序进入后台时调用 javascript 函数以执行 web 服务调用以更新应用程序状态。为此,我正在使用writejavascript函数。但它没有调用该函数。我不知道不管有没有可能。如果可能的话,请给我一个想法来做这件事。在此先感谢。

NSString *tojs = [NSString stringWithFormat:@"downloadMgr.updateStatus('%d');",status];

[自写Javascript:tojs];

4

2 回答 2

3

使用Phonegaps事件“暂停”并恢复我认为这可能会对您有所帮助。例如:

 document.addEventListener("pause", onPause, false);

  function onPause() {
  // Handle the pause event
  }

关联

完整示例

<!DOCTYPE html>
 <html>
 <head>
  <title>Cordova Pause Example</title>

<script type="text/javascript" charset="utf-8" src="cordova-2.1.0.js"></script>
<script type="text/javascript" charset="utf-8">

// Call onDeviceReady when Cordova is loaded.



function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// Cordova is loaded and it is now safe to make calls Cordova methods
//
function onDeviceReady() {
    document.addEventListener("pause", onPause, false);
    document.addEventListener("resume", onResume, false);

}

  function onResume() {
    // Handle the resume event
  }
// Handle the pause event
//
function onPause() {
}

 </script> </head> <body onload="onLoad()"></body> </html>   
于 2012-10-05T12:33:33.300 回答
0

暂停事件在 IOS 上用处不大:-

在暂停处理程序中,任何通过 Objective-C 的调用都将不起作用,任何交互式调用(如警报)也不起作用。这意味着您不能调用 console.log(及其变体),或任何来自插件或 PhoneGap API 的调用。这些只会在应用程序恢复时处理(在下一个运行循环中处理)。

于 2015-10-26T12:49:30.633 回答