0
点赞
收藏
分享

微信扫一扫

Android Scheme跳转协议 (基础)

12a597c01003 2022-03-12 阅读 103

Android中的Scheme是一种页面跳转协议,和网站通过URL的形式访问一样,APP同样可以通过这种方式进行跳转,它可以很方便的满足我们在一些场景中的需求:

假若遇到一个这个需求,h5想跳转到app的页面里面,有两种解决方案,一种就是原生app做一个JavascriptInterface的接口提供给js调用。

另一种就可以通过Scheme协议跳转,不需要去调java的接口。

具体用法:
在清单文件当中设置scheme

 <activity
android:name=".xxx.xxxActivity"
android:exported="true">

<intent-filter>
<data
android:host="ddd"
android:path="/abc"
android:port="123"
android:scheme="home" />


<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>

scheme:协议(不要填大写,不然h5调不起)
host:地址
port:端口号
path:路径

定义一个这样的协议。地址,端口号,路径,不填也可以,只需要一个scheme就行。
path一定要有/


webview用法

写一个html页面,在点击事件里面写入这个协议

<!DOCTYPE html>
<html>
<body>

<!-- href里面直接放协议地址 -->
<a id="dianji" href='home://ddd:123/abc?params=10026'>点击这里</a>


</body>
</html>

?后面跟http一样,可以放参数,用&来添加后续参数

新建一个文件,把上面的html放进去,更改后缀为html
新建一个assets文件夹,放入这个html

在这里插入图片描述

新建一个Activity,布局文件里面写一个WebView控件,直接加载这个html

在这里插入图片描述

 webView.loadUrl("file:///android_asset/web/index.html")

这时候就可以直接跳转到你配置scheme的那个Activity了

Activity获取参数值
在onCreate中通过intent获取参数


在这里插入图片描述



原生app用法



val url = "home://ddd:123/abc?params=10026"
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)

举报

相关推荐

0 条评论