什么是 URL Scheme?
android中的scheme是一种页面内跳转协议。
通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;
通过scheme协议,服务器可以定制化告诉App跳转到APP内部页面。
之前项目都是我们客户端和服务器端用自定义json串的形式来告诉客户端如何跳转,这种方式要手动解析字段,有点麻烦。然而scheme协议自带字段解析,非常之方便,后面我们就放弃了json解析的方式。
Scheme协议在Android中使用场景
H5跳转到native页面
客户端获取push消息中后,点击消息跳转到APP内部页面
APP根据URL跳转到另外一个APP指定页面
在配置文件中配置
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="com.xxx.app"
android:pathPrefix="/open"
android:scheme="android" />
</intent-filter>
val url = "android://com.xxx.app/open?goodsId=10011002&userId=676890"
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse(url)
)
startActivity(intent)
val data: Uri? = intent.data
KlogUtils.e(
"host = " + data?.getHost().toString() + " path = " + data?.getPath()
.toString() + " query = " + data?.getQuery()
)
val param: String?= data?.getQueryParameter("goodsId")
val userIdparam: String?= data?.getQueryParameter("userId")
KlogUtils.e(
"获取的参数为:$param"+"用户id:$userIdparam"
)
``
自己配置的网页html可以为:
<a href="http://192.168.1.9:5500/test.html">打开叮咚app</a>