Activity的跳转可以说是非常简单的了、从一个页面跳转至另一个页面,我们最常用的也就是下面这种:
1 | Intent intent = new Intent(this, xxx.class); |
当然还有我们的隐式跳转,为Intent指定一个action
即可
1 | Intent intent = new Intent("this is an action"); |
这篇文章上面提到的两个都不讲,这里来说使用scheme协议来进行页面跳转
- manifest / data 配置
- 如果需要让我们的Activity能被其他应用或者网页所打开,需要在
AndroidManifest
中进行配置(浏览网页的时候点击一些广告可以进对应的app大概就是这个原理)
1 |
|
- 如上代码我们只是简单的配置了一个
android:scheme
属性,那要打开这个Activity也是so easy的
1 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("azhon.scheme://"))); |
- 当然< data/>中还可以配置更多的属性(截取自官方中文文档,可以点击上面的manifest / data 配置)
1 | <data android:scheme="string" |
scheme 路径的规则
1 | <scheme> :// <host> : <port> [<path>|<pathPrefix>|<pathPattern>] |
scheme开头 :// 主机名 : 端口号 / [路径/参数] 路径后面拼接参数也是可以的下面会用到。
这个地址和我们经常使用的网页地址差不多是一样滴
eg:https://loaclhost:8080/index.jsp
在网页中打开我们对应的页面
- 我们修改Manifest中Activity的配置在多加点料,我这里创建了两个页面
1 | activity android:name=".TestOneActivity"> |
- 在主页面布局添加一个WebView控件,并让它加载
assets
文件夹中的html文件 - 布局文件代码:
1 | <WebView |
- assets文件夹中的Html代码:
1 | <a href="azhon.scheme://azhon:1011/我是路径?user=958460248&psd=123456">跳转至TestOneActivity</a> |
效果图:
在网页中只需要使用一个超链接便可以轻松的跳转至我们的app,是不是很开心。
当你将这个html文件使用手机的浏览器查看时,点击也是一样可以跳转进app的
跳转页面的时候还可以通过 ?key=value&key1=value2 键值对的方式往地址后面拼接参数
- 在跳转过去的页面接收传递过来的参数
1 | Intent intent = getIntent(); |
有了这种跳转方式 你只要知道其他app的scheme你就可以随意的跳过去了想想都刺激,比如下面代码打开微信和QQ程序。
1 | <a href="weixin://">打开微信</a><p> |
效果图:
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站