微信环境中如何实现下载apk文件的下载

今天一后台同事问我:为什么从App里面分享到微信好友时,在微信里没有发下载分享里的软件,而在浏览器中却可以?

 

于是我在微信公众号中试了一下,发现果然不可以下载。通过google 发现,原来是微信屏蔽了内置浏览器的下载功能。那么有没有解决办法呢? 肯定是有的。

43li59ru.png

 

 

 

 

 

 

 

 

1:判断发现是在微信中打开,给提示让其从右上角选择在浏览器中打开,这样的效果对于用户体验来说肯定是差的。

 

2:将要下载的app上传到腾讯应用宝中,这样就可以直接下载了,可以参考下面链接里的方法,非常实用。

 

这样根据上文的链接就可以解决微信屏蔽内置浏览器的下载功能了。

 

 

 

但是我们如何判断用户分享的软件是在微信中打开呢?

 

只需要检测 navigator 对象中的 UserAgent 属性,该属性主要是返回由客户机发送服务器的 user-agent 头部的值,是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。因此我们只需要判断UserAgent中是否含有 MicroMessenger 字符。

 

 

 

 
  1. var ua = navigator.userAgent;

  2. console.log(ua);

  3. if(ua.indexOf("MicroMessenger") > -1) {

  4. console.log("在微信中打开");

  5. }


 

 

 

 

 

 

在此需要说一下浏览器对象中的Navigator对象

 

navigator是在JavaScript中的一个独立的对象,他用于提供用户所使用的浏览器以及操作系统等信息,以navigator对象属性的形式来提供。也就是说Navigator 对象包含有关浏览器的信息。通过navigator中userAgent属性不仅可以判断是否在微信中打开,还可以判断手机的系统。

 

在微信开发者工具中,先查看一下Android机型输出的值:

 

 

 

 
  1. var ua = navigator.userAgent;

  2. console.log(ua);

 

 

现在切换到Iphone机型查看一下输出的值:

 

 

我们可以发现输出的字符串中会带有手机的机型,如Android、iPhone,这样我们就可以用 indexOf 来判断手机的机型了

 

 

 

 
  1. var ua = navigator.userAgent;

  2.  
  3. if (ua.indexOf('Android') > -1 || ua.indexOf('Linux') > -1) {//安卓手机

  4. alert("安卓手机");

  5. } else if (ua.indexOf('iPhone') > -1) {//苹果手机

  6. alert("苹果手机");

  7. }

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值