在iOS中的后台任务中调用Javascript函数

时间:2012-07-13 07:07:37

标签: ios cordova webview

我有一个phonegap应用程序,我想在后台任务中执行Javascript代码。当应用程序进入后台时,我开始执行一个javascript函数,该函数从Web数据库中取出数据并将一些值发送到Web服务,返回的数据可以将推送通知切换到用户。

我找到了如何从Objective-C here on Stackoverflow调用javascript以及如何在iOS SDK Documentation pages中实现长时间运行的后台任务,但是我没有找到任何结合两者的东西(我认为例如:当我通过webview调用javascript代码时,当应用程序处于后台时,这个View是否存在?)所以我想问一些更有经验的iOS开发人员,如果这是可能的话。

2 个答案:

答案 0 :(得分:1)

我认为它真的不可能。 Javascript需要UIwebview(实时)运行,并且必须对用户可见。当应用程序放在后台时,只允许运行少量任务 - webview而不是其中之一。

最好将数据发送到运行cron-job或类似工作的Web服务器,以通过apple推送通知服务器发送推送通知 - 您也可以绕过此操作并使用http://urbanairship.com/等服务

答案 1 :(得分:1)

我在iOS 5+上进行了实验,这是可能的。我创建了一个小型的PhoneGap插件,演示了它是如何工作的。查看它,并查看README以获取大部分信息。

https://github.com/jocull/phonegap-backgroundjs