o2team / H5Skills

移动端开发技巧集合
831 stars 80 forks source link

视频、音频播放和APP、M版的分享遇到的一些坑 #39

Open waileung opened 7 years ago

waileung commented 7 years ago

最近在做涉及视频、音频播放和APP、M版的分享的相关活动中,遇到了一些比较坑的问题。 分享出来,让大家一起了解一下。

视频音频播放的坑:

1、在微信大入口之外的微信环境(分享给好友的链接或朋友圈的链接)可以自动播放视频和音频 ( .play 能触发)。

2、在微信大入口之内,必须要等到微信的 JSBridge Ready 了才能触发 .play,否则不会自动执行。

document.addEventListener("WeixinJSBridgeReady", function() {  
    $("#video")[0].play();  
});  

最好监听了之后,在当前作用域内,立即执行。而不是使用 setTimeout 等计时器,延时执行。这样可能会导致在IOS下偶尔不能触发 .play(经测试,大概10%~20%的几率不能触发)。

3、在大入口内,且 JSBridge Ready 了,如果使用摇一摇,也无法触发 .play(经测试,.play 的触发不能直接在监听了 devicemotion 的事件处理内)。需要在摇一摇之前预先加载 .load

document.addEventListener("WeixinJSBridgeReady", function() {  
    $("#video")[0].load();  
    _shake.start({  
        duration: 500,  
        onShaking: function() { //正在摇  
        },  
        onEnd: function() { //一次摇一摇结束  
            $("#video")[0].play();  
        }  
    });  
});  

4、微信大入口在没有使用 JSBridge,而是通过点击来播放的点击事件,只能是 click 事情,不是 touchstart 事件

//正确的做法

$("#play").on("click",function(){  
    $("#video")[0].play();  
});  

//不正确的做法

$("#play").on("touchstart",function(){  
    $("#video")[0].play();  
}); 

APP和M版本分享的坑

  1. 分享文案不能使用的一些字符:现金 红包 #
  2. M版本的分享没有回调

以上总结内容转自 @少露