本文介绍: Android中的Scheme是一种页面跳转协议,和网站通过URL的形式访问一样,APP同样可以通过这种方式进行跳转,它可以很方便的满足我们在一些场景中的需求:假若遇到一个这个需求,h5想跳转到app的页面里面,有两种解决方案,一种就是原生app做一个JavascriptInterface的接口提供给js调用。另一种就可以通过Scheme协议跳转,不需要去调java的接口。具体用法:在清单文件当中设置scheme <activity android:name=”.xx
Android中的Scheme是一种页面跳转协议,和网站通过URL的形式访问一样,APP同样可以通过这种方式进行跳转,它可以很方便的满足我们在一些场景中的需求:
假若遇到一个这个需求,h5想跳转到app的页面里面,有两种解决方案,一种就是原生app做一个JavascriptInterface的接口提供给js调用。
另一种就可以通过Scheme协议跳转,不需要去调java的接口。
<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一定要有/
<!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获取参数
val url = "home://ddd:123/abc?params=100&age=26"
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
原文地址:https://blog.csdn.net/qq_29634351/article/details/123359898
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_7341.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。