如何在 ionic/android 后台运行应用程序

Posted

技术标签:

【中文标题】如何在 ionic/android 后台运行应用程序【英文标题】:How to App running in background in ionic/android 【发布时间】:2022-01-16 08:50:50 【问题描述】:

我已经构建了一个混合 (android/ios) 应用程序。我必须下载大量文件并在后台对它们进行一些处理。

我使用 Ionic 构建了应用程序。当它在前台时,它工作得很好。我想让应用程序在后台运行,并在后台本身进行所有处理。我已经尝试过 Ionic 的“native api cordova-plugin-background-mode”,但它不适用于所有版本的 Android,尤其是 Android 11。

它仅支持到 Android 8,但我对插件文件进行了一些更改,并使其适用于 Android 9/10。此外,该插件不保证被 Android/iOS 接受。

请为 AndroidiOS

推荐一些方法

另外,是否可以将 android-studio / Xcode 中可用的包合并到使用 Ionic 构建的应用程序中?

【问题讨论】:

Re iOS,后台URLSession 允许您在后台下载文件,然后在完成后可选择在后台启动您的应用程序。此时,如果您处理图像需要几秒钟,您可以在后台 URLSession 在后台启动您的应用程序时执行此操作。但是,如果您的“处理”时间可能超过 30 秒,您必须使用类似 (BGProcessingTask,其中操作系统将在选择操作系统时启动您的应用程序。 @Rob 感谢您提供的信息,但是是否可以通过 Xcode 将不属于 ionic 的功能组合到 ionic 应用程序中 对不起,我不是 Ionic 用户,所以我不能说。我只是想分享基本的 iOS 机制,这些机制最终限制了应用程序在 iOS 平台上的功能。你如何从 Ionic 使用这些是一个单独的问题,我无法回答(这就是为什么我只发表评论而不是答案)。抱歉,祝你好运。 【参考方案1】:

你试过这个插件了吗:cordova-plugin-background

document.addEventListener('deviceready', function () 

        cordova.plugins.backgroundMode.enable();

         cordova.plugins.backgroundMode.onactivate = function () 

                //Exec Your Action here when the device in backgroundMode
         
 , false);

【讨论】:

我假设您建议的插件是cordova-plugin-background-mode。在那种情况下,我已经尝试过该插件,并且该应用在不同的移动配置上 15-20 分钟后停止

以上是关于如何在 ionic/android 后台运行应用程序的主要内容,如果未能解决你的问题,请参考以下文章

IONIC android FCM 通知

Android跨进程通信AIDL服务

在不运行应用程序的情况下注册后台任务

制作适用于所有 android 版本的 Ionic Android 应用程序

如何在python中创建一个在间隔函数调用上线程化的后台?

如何在后台运行 android 服务 24x7 以获取用户的位置