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

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

作者: majorty | 来源:发表于2018-03-21 13:42 被阅读0次

    解决方案:原生代码调用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()");
        }
    

    相关文章

      网友评论

          本文标题:完美解决Android中加载WebView,Home键退出后声音

          本文链接:https://www.haomeiwen.com/subject/siqgqftx.html