转转的链接是如何在微信中直接跳转到appstore的?

新手上路,请多包涵

今天发现转转的一个Url非常神奇:
http://zhuanzhuan.58.com/zz/r...

1、用微信打开,苹果系统会直接跳转到appstore,安卓系统会提示选择用哪种浏览器打开(打开后就直接下载apk包了)。而我们知道微信是限制这些操作的,微信只允许通过应用宝来跳转到appstore的。
图片描述

2、用pc端的chrome打开的话,居然没有抓到请求,就直接下载了apk包了。用fiddler才抓到了这个请求,是做了302跳转。然而我理解通过302跳转还是会被微信屏蔽的。

哪位大神能够说明其中的玄机?

阅读 11.8k
1 个回答

问题看错了,抱歉:

测试了好几种方式,都跳转不过去。

通过CURL修改 http头请求头,发现如果 http://zhuanzhuan.58.com/zz/r... 判断是iPhone,会 302 到 AppStore。
图片描述

为什么他能跳转,咱的域名不能调。
因为 58 有个好干爹。腾讯斥资7.36亿美元收购58同城19.9%股权

============================================================
下面是老答案:

应该是 根据 userAgent 判断的(JS和 后端脚本都可以获取到)。

//JS
var ua = navigator.userAgent;
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
//PHP
$ua = $_SERVER['HTTP_USER_AGENT'];

根据UA可以判断:
系统:NT 6.1 = Win7
浏览器:Chrome/50.0

如果在微信内打开,UA中存在:MicroMessenger

测试 苹果的,不用应用宝链接也可以跳转到 AppStore。打开 AppStore 的链接后,目测Safari通过预设的规则打开 AppStore,苹果系统会自动跳转(微信调用的safari的内核)。

//伪代码
if(苹果){
   跳转到 AppStore
}else{
   if( 是微信内置浏览器 ){
      提示用浏览器打开
   }else{
      直接 302 到APK
   }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进