如何使 phonegap 构建应用程序在后台工作

Posted

技术标签:

【中文标题】如何使 phonegap 构建应用程序在后台工作【英文标题】:How to make a phonegap build app work in background 【发布时间】:2015-08-12 20:40:42 【问题描述】:

我需要我的应用 24/7 全天候工作,每 5 分钟记录一次用户的位置。它在手机处于活动状态时工作正常,但当它不是 setInterval() 的长度时,它的长度比它们应该的长 5 倍。

使用 phonegap 构建,我将如何让应用程序在手机空闲时在后台正常运行?

【问题讨论】:

androidios 都严格限制了应用程序在后台运行时允许执行的操作。如果应用程序没有充分的理由继续在后台执行操作,它们通常会被终止或给予非常低的优先级。还有,好主;为什么你需要如此密切地跟踪你的用户?我很震惊。 这是农民的自动时间表。如果他们不在家 + 在农场内,它会将他们记录为工作。 只能使用本机代码。在 Android 中,当应用程序处于后台时,js 代码不会执行。在IOS中,js代码可以通过javascript接口从本机代码调用js。我认为你应该专注于从原生构建后台服务 【参考方案1】:

@马蒂, Android 和 iOS 都在后台运行,但需要对常规 config.xml 进行扩展。

需要明确的是,Android 应用程序使用 AndriodManifest.xml。 iOS 使用,preferences.plist

两者都有进入后台的能力。但是,在 Cordova/Phonegap 中,这不能直接使用,您必须进行扩展。最好的解释来自 Cordova 和 Phonegap Build。

来自 Phonegap 构建: 从:Config File Elements 开始。您需要为每个添加一个 <gap:config-file>,然后您还需要添加到第一个 xml 元素,如下所示:

 <widget xmlns = "http://www.w3.org/ns/widgets"
        xmlns:android   = "http://schemas.android.com/apk/res/android"
        xmlns:gap   = "http://phonegap.com/ns/1.0"
        id          = "com.bsdmasterindex.googlemapexamples"
        version     = "1.0.0"
        versionCode = "10" >

最重要的项目是xmlns:android = "http://schemas.android.com/apk/res/android"。当然,这仅适用于 android。

使用它的示例在我的 Phonegap Build 的 Demo Boiler 板中 - 源代码可在 git hub 获得。

Three (3) Phonegap Build Boilerplates for For Android and iO

你会想看看 Boilerplate #2。

这篇文章会有所帮助。 7 things you should know about Android Manifest xml file

如果您还有其他问题,建议您前往google groups。我很快就会从我的准备清单中删除 ***。我可能会在星期一下降。

杰西

【讨论】:

谢谢你,但我不明白如何从清单中连接我的 js 函数?在任何链接上都找不到关于此的任何内容 @Marty.H,你没有 Javascript。您只需在 config.xml 中添加适当的行,应用程序就应该能够在后台运行。阅读文档(Android 和 iOS),它们的工作方式不同,但它们都可以做你想做的事——在后台运行你的应用程序。换句话说,您是在告诉两个操作系统,“请在后台运行我的应用程序,而不是正常进程”。 我一直在这里阅读:developer.android.com/guide/topics/manifest/… 它说我需要将我的服务名称添加到清单中,但我实际上没有要命名的服务,我该如何解决那个? 好的。我可以看到你还没有在那个级别上做过任何 Android 编程。 config.xml 是声明性结构,AndroidManifest.xml 也是。通过此任务,您正在“扩展”config.xml。事实上,config.xml 最终会变成 AndroidManifest.xml。我需要找到我的示例,我会在几个小时后回到这个问题。 好的:相反,这是您的 Google 查找:androidmanifest.xml declare background service 如果这还不够,请告诉我。

以上是关于如何使 phonegap 构建应用程序在后台工作的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap构建相机不工作

Ionic android 推送通知仅在后台工作

ibacon 如何在后台工作?

phonegap 构建 ios 闪屏

Whatsapp 和即时消息应用程序如何在没有 Oreo 持续通知的情况下在后台工作?

如何使splashscreenimage在ios phonegap应用程序中工作?