我想制作基于 Android 浏览器的 Radio Web App。我的 Web App 的关键功能是连续播放音乐列表(mp3 文件)...... JavaScript 代码很简单...... 它在 PC 浏览器、iOS safari 和 Android Dolphin 浏览器(第 3 方浏览器)中运行良好......
var audioPlayer = new Audio();
audioPlayer.addEventListener('ended', nextSong, false);
function nextSong() {
audioPlayer.src = nextMusic_src;
}
但。在 Android 默认浏览器中,当 android 处于后台模式(主屏幕模式和 LCD-off 睡眠模式)时,Android 浏览器的 onPause() 会阻止“结束”事件和 nextSong() 的执行。所以,我的网络应用程序只能播放一首音乐......并且不再工作...... Android浏览器的onPause()源代码是这样的......
浏览器活动.java
public class BrowserActivity extends Activity
{
private Controller mController;
// ...
@Override
protected void onPause() {
if (mController != null) {
mController.onPause(); // <<==== here
}
super.onPause();
}
}
控制器.java
public class Controller implements WebViewController, UiController {
protected void onPause() {
// ...
mActivityPaused = true;
// ...
mUi.onPause();
mNetworkHandler.onPause(); // <<==== here
WebView.disablePlatformNotifications(); // <<====here
}
}
NetworkStateHandler.java
public class NetworkStateHandler {
// ...
void onPause() {
// unregister network state listener
mActivity.unregisterReceiver(mNetworkStateIntentReceiver); // <<==== here
}
}
是否有任何浏览器策略可以防止后台模式中的事件......?如果没有,我怎么能注意到这个报告给谷歌开发者请求使用网络应用播放背景音乐......?我认为不是基于 WebView 的网络应用程序(混合),而是基于浏览器的网络应用程序......谢谢......
郭诺贤