解决微信端无法使用window.open打开文件的问题

项目场景:

微信端无法使用window.open进行文件预览


问题描述

在微信测试环境拿到要跳转的链接url,使用window.open(linkUrl),没有起作用,而且代码也没有报错


原因分析:

window.open会被浏览器拦截,导致无法正常弹出


解决方案:

首先,需要对是否是微信端进行判断,判断当前页面所在的环境是不是微信内置浏览器

const isWeiXin = function() {
        var ua = window.navigator.userAgent.toLowerCase();
        if (ua.match(/MicroMessenger/i) == 'micromessenger') {
            return true;
        } else {
            return false;
        }
    }

在微信浏览器环境下使用window.location.href

if (isWeiXin())
{
       window.location.href = this.baseURL + res.data.data + '?token=' + localStorage.getItem('authorization');//验证token
}else{
       window.open(this.baseURL + res.data.data, '_blank');
}
UniApp 引入微信 SDK (JS 文件) 的步骤通常涉及将第三方库添加到项目的依赖中,并在需要使用的地方通过 script 标签加载。对于微信的 JWeixin API,你需要按照以下步骤操作: 1. **注册小程序或公众号**:首先确保你已经拥有微信官方的小程序或者公众号账号。 2. **获取 SDK URL**:如你提供的链接 `http://res.wx.qq.com/open/js/jweixin-1.6.0.js` 是微信官方的一个固定资源地址,用于下载微信 JavaScript API 的最新版本。 3. **配置项目依赖**:在 UniApp 的项目结构中,如果你使用的是基于 Vue 或者其他框架构建的项目,可以在相应的 `index.html` 或者分包中的 `app.vue` 中引入。如果是在原生部分引入,可以参考 UniApp 的文档关于如何引入第三方库。 ```html <!-- 在 index.html 或 app.vue --> <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ``` 4. **使用 SDK**:JWeixin 需要在 window 对象上注册后才能使用,例如: ```javascript // 等页面加载完成后再执行 window.onload = function() { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在开发者工具中才会显示。 appId: 'your_app_id', // 必填,公众号的唯一标识 timestamp: '', // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '', // 必填,签名 jsApiList: ['onMenuShareTimeline'] // 必填,需要使用的JS接口列表 }); wx.ready(function () { // 在这里调用微信的API wx.onMenuShareTimeline({ title: '分享标题', link: 'https://www.example.com' }); // 示例 }); }; ``` 5. **注意权限**:在使用微信 SDK 功能前,确保你已经获得了所需的用户权限,比如授权登录、获取用户信息等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值