注:本篇报告只对市面上的 Android 以及 IOS 的机器做兼容。


众所周知,在 IOS8 以下版本及 Android 的微信中我们是无法直接调起 app 的,但是发现业内的包括头条和微博是可以直接在微信端内直接调起 app 的。找了很多博客,发现没有详细的方法介绍,特此记录下来。
正常的,我们在浏览器之中可以使用 Android 的 Schema 在页内进行 app 的唤醒(这里面存在一些坑,比如手百,一直想不通一个浏览器会去拦截 Android Schema ),但是微信对此做了拦截,无法通过正常的方案去调起。对此,有个不错的替代方案,就是腾讯的亲儿子 —— 应用宝。


腾讯开放平台出了一个叫做微下载的解决方案,可提供一个二维码同时对应 Android 以及 IOS 的 app 下载,也提供了 AppLink 功能,其可以使得你直接调转 app 唤醒后的指定活动页面。下面来介绍一下详细的 hack 流程。(无需装机应用宝,通过应用宝 H5 页面唤醒)

(1)首先你的应用需要满足一下几点硬性要求:
应用已发布在应用宝中。
以下四点任意满足一点即可。
—— 应用评级达到A级;
—— 应用微下载日访问量达到10W/天;
—— 项目/应用参加腾讯“双百”扶持计划;
—— 应用由腾讯投资占股。

(2)获取你的应用宝渠道包链接。(如下图)

这里面存在了一个 ckey 的问题,因为之前抓取了微博的 AppLink,发现链接中有 ckey,但自己这边却不知道如何拿到,如这个链接:
http://a.app.qq.com/o/simple.jsp?pkgname=com.sina.weibo&ckey=CK1327948375357
可以直接在应用宝中调起微博,经过调研发现 ckey 是渠道包链接,如果是想区分渠道来源的话可以加上ckey参数,不加也不影响使用,直接在主链接后加参数就可以了。

那么什么是渠道包?这里解释一下。(如下图)

简单的总结一下:这个就是可以上传不同的渠道包,监控不同渠道的效果的。

(3)使用 AppLink 跳转至 app 端内指定活动页面。(注:此 link 通用 Android 以及 IOS 两端,但是 IOS8 以及以下版本不能确定是否调起成功,不成功则通过 app store 做迂回方案,据说是市面上 IOS8- 的用户较少,官方不能确定)
AppLink 的跳转需要 Android Schema 的支持,需要将 Android Schema 交予应用宝的对接人员进行绑定(这里需要符合(1)中所述的条件),绑定过即可生效。链接的拼接方式如下:

如你的渠道包是这样的:
http://a.app.qq.com/o/simple.jsp?pkgname=com.xx.abc
你的活动页面是这样的:
https://www.a.com/b/c.html
你的页内唤醒链接是这样的:
appname://a/b?url=…

那么你的按照如下方式进行拼接即可:
http://a.app.qq.com/o/simple.jsp?pkgname=com.xx.abc&android_schema=appname://a/b?url=https://www.a.com/b/c.html
请注意:上述链接还有一些问题,需要对活动页面的 url 进行 encode,包括 ‘/’ 也是需要被转义的。

当你做完上述步骤之后,你就可以测试你的链接是否生效了。


那么最后,IOS9 如何做到微信端内调起呢(不止于微信,微博分享也可直接调起),就是使用 UnversalLink 了,具体方法可参考百度,或者询问 IOS 开发人员。


总结:有一个弊端,IOS8 以下版本以及 Android 虽然可以在腾讯系的产品中通过此种方式调起,但是在微博中的 link 还没有找到好的替代方案(目前只知道浏览器迂回)。如有解决方案,可以留言讨论。

此处附上 IOS9+ 微信端内调起解决方案: 戳我

更多相关文章

  1. android手游渠道接入业务+技术全讲解
  2. Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递
  3. Android如何统计应用市场内外的渠道数据
  4. 【Android的从零单排开发日记】之入门篇(一)——开发环境的搭建
  5. 2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总
  6. 资源分享-良心资源,适合初,中级程序员
  7. 史上最强Android保活思路:深入剖析腾讯TIM的进程永生技术
  8. Android(安卓)开发技巧-以友盟为例在Android(安卓)Studio利用gra
  9. Android(安卓)使用腾讯的TBS浏览器X5内核的集成加载pdf等文件

随机推荐

  1. Android的用户界面
  2. Android(安卓)解决多个Fragment切换时不
  3. [Traceview]android性能测试
  4. 在Android Sudio中使用Uiautomator
  5. Android开发(二十九)——layout_weight的含
  6. Android(安卓)Socket编程
  7. Android之创建程序快捷方式
  8. Android中文翻译组
  9. AndroidManifest.xml配置文件详解
  10. Android(安卓)极光推送快速接入