H5video标签播放视频相关问题(这个是我同事提出的)
1.视频自动播放
经过调研测试,IOS和安卓都可以进行自动播放,附上代码:
// 播放视频
playFunc(){
var vdo = document.querySelector("#video");
document.addEventListener("WeixinJSBridgeReady", function() {
vdo.play();
});
if (
window.navigator.userAgent.match(/MicroMessenger/i) == "MicroMessenger"
) {
WeixinJSBridge.invoke("getNetworkType", {}, function(res) {
vdo.play();
});
}
vdo.play();
}
在mounted中执行此代码即可。
2.视频上悬浮其他元素
但是,如果想在视频上悬浮其他元素,必须在video中加上这个属性:
x5-video-player-type="h5"
如果不加上这个属性,视频播放的时候,视频会置顶在所有元素最上层,因此无法在视频上悬浮其他元素。 这里存在一个问题:IOS加上这个属性之后,没有影响,依然可以正常自动播放,但是安卓微信环境下,加上这个元素之后不可以自动播放,会黑屏无法播放。 这是由于微信内置浏览器为了节省用户流量做的限制。安卓微信环境下,只能通过点击或者滑动触发这个播放的方法,才能让视频进行正常播放。
移动端偶尔会出现ios页面右边有空白区域,安卓显示正常
将最外层的元素宽度设为100%和设置overflow-x:hidden
解析后端返回的文件流
这里在vue里面写的 但是主要功能在回调里面
this.$ajax.post(url,{},{responseType: "blob"})
.then(res => {
const content = res;
const blob = new Blob([content], {type: "application/ms-excel"});
const fileName = item.name + ".xlsx";
if ("download" in document.createElement("a")) {
// 非IE下载
const elink = document.createElement("a");
elink.download = fileName;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
} else {
navigator.msSaveBlob(blob, fileName);
}
});
关于ios input输入框失焦后页面没有回滚
let u = navigator.userAgent;
let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isiOS) {
// window.scrollTo(0, 0);
window.scrollTo(0, document.documentElement.clientHeight);
}
将日期转换成时间戳的形式,在安卓和ios不同的系统下转正会有兼容性的问题
//安卓系统下
Date.parse(new Date('2018-03-30 12:00:00'))
//会直接转换成时间戳的形式(简单说就是整数形式)
//ios系统下
Date.parse(new Date('2018-03-30 12:00:00'))
//sorry,转换不了
//解决方法
//上面有判断什么操作系统
//ios系统下使用
Date.parse(new Date('2018/03/30 12:00:00'))