完美解决Android中加载WebView,Home键退出后声音

2018-03-21  本文已影响0人  majorty

解决方案:原生代码调用html5中的js方法,在js方法中暂停声音的播放与开始,
具体实现如下:
html5中定义代码

/*设置音乐*/
    var volum = document.getElementById('volum'),
        audio = document.getElementById('audio');
    if (navigator.userAgent.match('iPhone|iPad|iPod')) {
        var deviceApi = { //原生的回调方法 播放和暂停
            onStop: function() {
                volum.setAttribute('class','vloume_btn active');
                !audio.paused && audio.pause()
//          log('onStop回调执行,音乐停止播放')
            },
            onResume: function() {
//          log('onResume回调执行,音乐开始播放')
                audio.paused && audio.play()
            },
            backToApp: function(){
                volum.setAttribute('class','vloume_btn');
                audio.pause();
                window.deviceInvoker('deviceApi' , 'goBack')
            }
        }
    }else {
        var deviceApia = { //原生的回调方法 播放和暂停
            onStop: function() {
                volum.setAttribute('class','vloume_btn active');
                !audio.paused && audio.pause()
//          log('onStop回调执行,音乐停止播放')
            },
            onResume: function() {
//          log('onResume回调执行,音乐开始播放')
                audio.paused && audio.play()
            },
            backToApp: function(){
                volum.setAttribute('class','vloume_btn');
                audio.pause();
                window.deviceInvoker('deviceApi' , 'goBack')
            }
        }
    }
    volum.onclick=function(){
        var clsvolum = volum.getAttribute('class');
        if(clsvolum == 'vloume_btn') {
            volum.setAttribute('class','vloume_btn active');
            // 关闭声音音乐
            audio.pause()
            window.deviceApi.onStop()
        } else {
            volum.setAttribute('class','vloume_btn');
            // 声音打开
            audio.play();
            window.deviceApi.onResume()
        }
    }

Android中在对应的Activity里边添加代码

    @Override
    protected void onResume() {
        super.onResume();
        if (mWebView != null) {
            mWebView.onResume();
            mWebView.loadUrl("javascript:window.deviceApia.onResume()");
        }
     //   LogUtils.i(TAG, "onResume()");
    }

    @Override
    protected void onStop() {
        super.onStop();
        if (mWebView != null) {
          mWebView.loadUrl("javascript:window.deviceApia.onStop()");
        }
     //   LogUtils.i(TAG, "onStop()");
    }
上一篇 下一篇

猜你喜欢

热点阅读