一场从“余额宝领体验金活动”引发的技术思考近期支付宝策划了一期“余额宝体验金”爆款的理财体验活动,通过领取模拟体验资金,获得真实收益。在领取过程中,有个细节引起我们的注意: 可以看出,在平台的跳转过程中,第二步会比较受限(多了一步复制链接按右上角),交互并不流畅。
此处引申出我们的关注点:一是跳转机制,提供了APP之间何种交互的能力;二是场景,跳转技术如何配合业务场景设计?
本期我们将就浏览器跳转到APP具体页面的URL Scheme跳转技术使用进行浅谈。 1 前言:Android页面跳转的两种方式 两种方式分别是显式跳转和隐式跳转。
我们要介绍的Scheme协议跳转就属于隐式跳转。 2 URL Scheme跳转使用场景 应用可以向操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用。通过指定的 URL 字段,可以让应用在被调起后直接打开某些特定页面,比如基金详情页、基金购买页面等等。也可以在应用内通过 html 页来直接调用显示 app 内的某个页面。综上URL Scheme使用场景大致分以下5种:
部分场景效果截图: 比如用在手机浏览器打开了一个分享页面,点击打开,弹框询问是否打开APP,给APP导流。
![]() ![]() 3 URL Scheme协议知识介绍
URI的组成如下图所示: 上图所列举了3种比较常见的形式,分别是网址、打电话、发邮件。 而Android中URI常用的几个部分主要是scheme、host、path和query。 android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面。 怎么定义自己APP的Scheme协议呢?我们拿刚才的道乐官网和道乐APP做对比 ![]() ![]() 4 跳转的实现 1、设置scheme,在AndroidManifest.xml对应标签设置scheme ![]() 2、获取Scheme跳转参数并显式跳转 3、WebViewClient设置重定向 4、H5调用,APP内外都可 第2步其实也可以用隐式直接跳转,但需要把购买页面FundBuyActivity也暴露出去,不推荐这么做,一个APP只暴露一个中转无页面的SchemeJumpActivity,利于统一控制,提高安全性。好比一个房间有10个门和一个门区别,守一个门的比10个门容易的多。
中转解析模块的流程图如下: 用户点击链接,浏览器解析链接,跳转到APP,在解析模块我们做了一些合法性校验,包括scheme、host、path和相关参数的检查,通过则取相关参数去实现相关功能,不通过则走容错处理模块。 容错处理机制是非常必要的,当出现一些找不到的对应规则时就降级去到首页,避免了出现空白页面,提高了兼容性。 5 扩展:开源路由框架也用了Scheme设计思路 路由跳转在Android开发中有越来越流行的趋势,其中核心设计思路也用到了URL scheme协议,在Manifest给中转Activity配置host、scheme等。 6 总结 URL scheme协议提供了APP之间交互的能力,APP不再是一座孤岛,为APP导流提供过了一种方式。而事先设计好的scheme协议规则就像一张地图,通过这张“地图”能准确的找到目的地。特别注意是微信做了直接跳转外部的限制,需引导用户在外部浏览器中打开。
文章分类:
互联网基金研究院
|