一、首先什么是Scheme?
android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。
客户端应用可以向系统注册一个 URL Scheme,该Scheme用于从浏览器或其他应用中启动本应用。通过指定的 URL 字段,可以让应用在被调起后直接打开某些特定页面。也可以执行某些指定动作。综上Scheme使用场景大致分以下几种:
1.服务器下发跳转路径,客户端根据服务器下发跳转路径跳转相应的页面
2.H5页面点击锚点,根据锚点具体跳转路径APP端跳转具体的页面
3.APP端收到服务器端下发的PUSH通知栏消息,根据消息的点击跳转路径跳转相关页面
4.APP根据URL跳转到另外一个APP指定页面
二、Scheme协议格式
上面说到Scheme是一种页面内跳转协议,那协议一定有固定的格式,在Android中Scheme属于Uri,下面就是Scheme的协议结构:
[scheme:]scheme-specific-part[#fragment]
[scheme:][//authority][path][?query][#fragment]
String url="http://www.orangecpp.com:80/tucao?id=hello&name=lily";
//url = protocol + authority(host + port) + path + query
//协议protocol= http
//域名authority= www.orangecpp.com:80
//主机host= www.orangecpp.com
//端口port= 80
//页面path= /tucao
//参数query= id=hello&name=lily</