ios里面无法使用window.open方法吗?vuejs项目适配安卓和苹果ios系统实现window.open功能

问题描述:

在做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 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_22182989/article/details/126087731