Cordova 应用程序:当应用程序关闭时停止运行 JavaScript

Posted

技术标签:

【中文标题】Cordova 应用程序:当应用程序关闭时停止运行 JavaScript【英文标题】:Cordova App: Stop JavaScript from running when App is closed 【发布时间】:2014-11-25 16:30:33 【问题描述】:

我在 ios 中的 cordova(4.0 版)应用程序有一个大问题:

它使用由 buzz.js 触发的 html5 音频。现在的问题是,我希望在离开应用程序时所有音频都停止/静音。我希望这是标准行为,但事实并非如此。当我将应用程序留在 iPad 模拟器中时,它会继续在后台播放音频。

通过我的研究,我刚刚发现了一些人的帖子,他们遇到了完全相反的问题并希望继续在后台使用应用程序播放音频。

我知道我可以尝试使用 cordova 提供的恢复和暂停事件来处理这个问题,但由于 iOS 不允许对 HTML5 音频进行音量控制,因此可能会很困难/需要大量工作。

正如我所说,我正在使用 Cordova 4 CLI 使用 xCode 6.1 构建我的应用程序

我不了解 Objective-C 等,只有 javascript

项目安装的插件如下:

me.apla.cordova.app-preferences 0.4.2 "AppPreferences"
org.apache.cordova.inappbrowser 0.5.3 "InAppBrowser"
org.apache.cordova.statusbar 0.1.8 "StatusBar"

【问题讨论】:

【参考方案1】:

pauseresume 事件应该做你想做的事。你试过使用它们吗?例如:

document.addEventListener("pause", function() 
    myBuzzSound.fadeOut();
);

在简历中...

document.addEventListener("resume", function() 
    myBuzzSound.fadeIn();
);

【讨论】:

这就是我想解释的,因为iOS不支持淡入淡出或静音,我不能真正使用这些功能。此外,在不同的时间播放了许多声音,很难检测哪些声音应该在“恢复”事件中恢复播放。我更想知道是否有任何简单的配置或其他东西(例如添加 info.plist)。因为我相信这也是 Safari 应用程序的标准行为,当它关闭时,视频和声音就会停止。

以上是关于Cordova 应用程序:当应用程序关闭时停止运行 JavaScript的主要内容,如果未能解决你的问题,请参考以下文章

Cordova:在后台运行应用程序时的事件

如何在 Cordova 到达并且应用程序关闭时处理推送通知

CSS 动画在 iOS 上无法原生运行,但带有 Cordova 端口

在多次文件请求后,Cordova-Angularjs 应用程序在 iPad 上停止

使用任务管理器关闭应用程序时停止 Android 服务

Cordova - 关闭通知将丢失其中的数据