所以我问你们所有的PhoneGap / Cordova / ...专家,我有一个即将开展的项目,其中我同时针对iOS和Android,我必须决定是否要这样做跨平台或原生的。
但是,这个应用程序必须在其生命周期的某个时刻在后台运行。我找到了这些插件,但有些人说它不起作用:
问题是我可以使用Crodova技术进行后台处理吗?如果是,哪个是最好的插件?
请帮忙。感谢。
答案 0 :(得分:3)
您必须记住,Cordova应用程序在您应用的主(GUI)线程中的webview中运行。实际上,只有在操作系统决定因任何原因(通常是为了保留RAM和/或电池)而暂停操作时,您的应用才会最小化运行。
对于Android应用程序,您可以创建自己的Cordova插件来实现后台服务。您可以使用Red-Folder/bgs-core作为起点,而不是从头开始。您必须使用java和Android SDK编写bg服务的逻辑。
对于iOS应用程序来说,它更棘手。 Apple仅允许bg代码用于许多用例:音频播放,GPS跟踪,其他。 cordova-plugin-background-mode伪造bg音频播放以保持应用程序活着,但不会被应用商店接受。我在iOS上的(非常肤浅的)测试显示,当使用cordova-plugin-background-mode并实际播放bg音频时,我的应用程序内部的Javascript回调将被不正常地调用(称为迟到,有时根本不被调用)。
对于我的用例,我最终实现了所提到的Android服务和iOS插件,该插件使用Apple的AVQueuePlayer播放bg音频和视频,同时应用程序最小化。