Android Scheme跳转协议 (基础)

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=100&age=26'>点击这里</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=100&age=26"
  val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
  startActivity(intent)
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值