问题描述:
在做vuejs项目的时候。需要用到打开pdf文件的功能。
安卓系统使用window.open没问题。
但是苹果ios系统使用window.open之后没反应、
原因分析:
ios浏览器的安全策略问题:
原因是window.open被广告商滥用,严重影响用户的使用。这个阻止弹出窗口的操作
在Safari中无法open新窗口,原因是Safari的安全机制将其阻挡。
解决方法:
安卓系统:
window.open(url)
苹果ios系统:
let onlocal = window.open('', ' _blank'); onlocal.location = url;
完整代码:
checkPlatform(url) {
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
console.log('是否是Android:'+isAndroid);
console.log('是否是iOS:'+isiOS);
//或者直接用正则,i是忽略大小写
//根据不同的系统使用不同的方法
if(/android/i.test(navigator.userAgent)){
console.log("Android");//Android
window.open(url)
}
if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)){
console.log("iOS");//iOS
let onlocal = window.open('', ' _blank');
onlocal.location = url;
}
},
扫描二维码关注公众号,回复:
14424239 查看本文章
