IOS + 微信公众号网页: 自动播放audio问题

之前试了

function autoPlayMusic() {
     // 自动播放音乐效果,解决浏览器或者APP自动播放问题
     function musicInBrowserHandler() {
         musicPlay(true);
         document.body.removeEventListener('touchstart', musicInBrowserHandler);
     }
     document.body.addEventListener('touchstart', musicInBrowserHandler);
     // 自动播放音乐效果,解决微信自动播放问题
     function musicInWeixinHandler() {
         musicPlay(true);
         document.addEventListener("WeixinJSBridgeReady", function () {
                musicPlay(true);
         }, false);
         document.removeEventListener('DOMContentLoaded', musicInWeixinHandler);
     }
     document.addEventListener('DOMContentLoaded', musicInWeixinHandler);
}
function musicPlay(isPlay) {
	 var media = document.querySelector('#bg-music');
     if (isPlay && media.paused) {
	 	media.play();
     }
     if (!isPlay && !media.paused) {
      	media.pause();
     }
}

还有

var music_div = document.getElementById('music_div');
music_div.addEventListener('touchstart', function () {
	var media = document.querySelector('#bg-music');
	media.play();
});
// 触发事件监听
var event = document.createEvent('Events');
event.initEvent('touchstart', true, true);
music_div.dispatchEvent(event);

都不行,完全没有办法触发
然后用jssdk,wx.ready就可以了

//wx获取参数-等接口
$.ajax({
  type:"get",
  url:ROOT_API + 'v1/wechat/jssdk_config',
  async:true,
  dataType : "json",  
  data:{'url':window.location.href.split('#')[0]},
  success:function(res){
      var meta = res['meta'];
      var data = res['data'];
      if(meta['code'] == "200"){
        var appId = data['appId'];
        var nonceStr = data['nonceStr'];
        var timestamp = data['timestamp'];
        var url = data['url'];
        var signature = data['signature'];
        wx.config({
            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            appId: appId, // 必填,公众号的唯一标识
            timestamp: timestamp, // 必填,生成签名的时间戳
            nonceStr: nonceStr, // 必填,生成签名的随机串
            signature: signature,// 必填,签名
            jsApiList: [] // 必填,需要使用的JS接口列表
        });
        wx.error(function (res) {
            if(res.errMsg!='config.ok'){
            	console.log('error:'+res.errMsg);
            }
        });
        wx.ready(function(){
            document.querySelector('#bg-music').play();
        })
      }
  }
});

你可能感兴趣的:(js)