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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在iOS中的后台任务中调用Javascript函数相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

另一答案

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

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

以上是关于在iOS中的后台任务中调用Javascript函数的主要内容,如果未能解决你的问题,请参考以下文章

后台 Javascript 或 Cordova 应用程序中的计时器任务

iOs后台线程中的函数调用

在android中安排后台任务并从任务中调用react-native javascript方法

将 iOS 中被调用函数的结果返回给 JavaScript 中 WkWebView 中的调用函数

ASP.NET中前台javascript与后台代码调用

浏览器中的JavaScript事件循环机制