微信里的APK链接接打不开怎么办?微信扫描二维码下载APK的解决方案

不管是app的下载链接还是普通文件的链接在微信内置浏览器或者QQ内置浏览器分享都会被拦截。这是腾讯对第三方下载域名实施的打压政策。被屏蔽了也就意味着链接在微信中是无法正常打开的,那么此时用户在微信内打开就会提示“已停止访问该网页”。那么我们遇到这个问题该怎么办呢。

首先我们要解决域名被拦截的阻碍,其次就是实现微信内直接下载app或打开指定页面的功能。下面给大家大概分析一下如何实现功能和实现后的效果。

首先我们需要对分享域名加JS防封接口,这需要对php代码进行处理,然后我们再加入浏览器外跳接口,以达到我们的期望需求。

1、申请腾讯开放平台开发者

具体流程可以去访问http://open.qq.com/,大概的意思是需要将apk提交到腾讯开放平台的里面,每个apk应该会自动生成一个二维码,每年支付一定的费用,然后在微信里面扫一下这个二维码,这个时候也需要先安装一个手机应用宝,才能进行 apk的安装。

对于这种方案,只能用一种很流行的话说:”很任性”。

2、重定向

这种方法对于一些已经发布出去的二维码比较有用,也是目前比较普遍的做法。不可能因为微信不能直接下载了,就得把所有的已经流出去的二维码重新生成吧?

2.1 判断浏览器类型

/*首先判断是否是pc,若是pc访问则跳转到http://app.ctrip.com/*/  
 var u = navigator.userAgent || ''; var isPC = !/(iphone|ios|android|mini|mobile|mobi|Nokia|Symbian|iPod|iPad|Windows\s+Phone|MQQBrowser|wp7|wp8|UCBrowser7|UCWEB|360\s+Aphone\s+Browser)/i.test(u); if (isPC) { location.href = "http://www.hipermart.com.cn"; }

如果是pc端的话,那么直接重定向到一个网站

如果是非pc端的话,那么要区分是android还是apple?

2.2 判断是android还是iOS?

因为我们假设iOS的下载必须从苹果的appstore里面下载,那么其下载地址有一定的规律,比如说sourceid等。

可以通过一个正则表达式来确定。

var urls = document.location.search, re2 = new RegExp("(\\\?|&)sourceid=([^&]+)(&|$)", "i"), from = urls.match(re2);
    if (from) { sid = from[2]; }

document.location.search

比如一个URL是XXXX?g=1,那么document.location.search的值就是?g=1

2.3 重定向到下载地址

window.onload = function () { //修复图片偶尔不能加载
        var salesLocal = localStorage.getItem("SALESOBJ") ? JSON.parse(localStorage.getItem("SALESOBJ")) : null;
        var appUrl = salesLocal && salesLocal.data && salesLocal.data.appurl ? salesLocal.data.appurl : "";
        if (!isPC && !iswx) {
            if(appUrl){
                location.href = appUrl;
            }else if(sid){
                location.href = "/m/" + sid
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值