解决微信环境下无法通过链接唤起App Store、微信访问App Store 链接白屏问题

背景:
上周五临下班前,反馈群提出了个BUG(使用IOS在微信打不开App Store, 在浏览器下可以打开)并抛出了两个链接。
一个链接用于配置公众号的模板链接 http://xxxx.com/?platform=wechat
另一个是用于社群分享的链接 http://xxxx.com/?platform=h5
于是创建了二维码使用微信扫一扫,发现两个链接都可以正常打开,并且链接上面的参数在逻辑上不影响唤起App Store, 但是后面直接把链接分享给自己的时候打开又无法唤起。于是在网上搜索了一番

一番搜索找到了这篇 关于《微信外部链接内容管理规范》调整的声明

原来是去年(2021)九月份微信开始对外部链接做跳转到第三方App做了限制 ,
虽然管理规范中没有写明,但是在调试过程中以及网上搜索出来的结果表明:

在群聊或者单聊对话中的链接,微信浏览器不支持跳转到App Store

解决方法: 通过扫码或者在公众号场景分享卡片打开的链接,或者点击wx-open-launch-app开放标签是可以唤起App Store

跟运营和产品沟通后,选择了一个最简单的方法,就是在微信环境下,将弹窗的下载按钮去掉,并使用QRCode生成把App Store的链接生成二维码,使用二维码扫码识别唤起App Store。

### 如何在 UniApp 中实现手机扫描二维码以下载 APP 的功能 #### 使用 `uni.scanCode` 方法获取二维码数据 为了实现在 UniApp 应用中通过手机扫描二维码来下载应用程序的功能,可以利用 `uni.scanCode` API 来启动设备的摄像头或访问相册中的图片进行扫码。当成功解析出 QR Code 或 Barcode 后,会返回包含条形码类型 (`scanType`) 和其内容 (`result`) 的对象。 ```javascript // 调用 uni.scanCode 进行扫码 uni.scanCode({ onlyFromCamera: true, // 只允许从相机扫码 scanType: ['qrCode'], // 设置只识别QR code类型的编码 success(res) { const url = res.result; handleDownload(url); }, fail(err) { console.error("Scan failed:", err); } }); ``` #### 处理下载逻辑 一旦获得了有效的 URL 地址,则可以根据不同的平台采取相应的措施触发文件下载行为: 对于 Android 设备而言,通常可以直接打开浏览器加载该地址;而对于 iOS 用户来说,可能需要先判断是否已安装目标 App 若未安装则引导至应用商店页面完成下载流程[^2]。 ```javascript function handleDownload(downloadUrl){ let schemeUrl; // 假设这是您想要唤起的应用程序协议URL if (/iPhone|iPad|iPod/.test(navigator.userAgent)){ setTimeout(() => window.location.href = "https://apps.apple.com/app/id"; , 1000); // 如果iOS上无法直接唤醒应用,则跳转到App Store }else{ window.location.href=downloadUrl ; // 对于Android和其他情况,默认尝试直接下载APK或其他资源包形式分发的应用版本 } } ``` 请注意,在实际开发过程中还需要考虑更多细节问题,比如错误处理机制以及用户体验优化等方面的工作。上述代码片段仅作为概念验证用途,并不代表完整的解决方案[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值