Android外部URL跳转到APP的操作
最近公司有了⼀个需求,外部要能开发本地的APP的操作!我觉得这种操作其实⽤处挺⼤的,反正之前我看很多APP都有这个功能,所以就仔细研究了⼀下,发现实现起来还是很简单的!
本⽂知识点
通过外部URL打开本地app
获取传递的相应内容
⾸先我们需要明确的是,移动端都应该做些什么?我们应该和前端定义好相应的请求头部!只要确定好这个头部就能实现跳转了,最开始我也是这么做的!之后在说为什么我需要改?
这⾥先来⼀个简单的h5页⾯,因为我不是前端开发,所以这⾥就来个最简单的!代码是这样的!
1<html>
2<meta charset="UTF-8">
3 <body>
4 <h1>Test Scheme</h1>
5 <!--⼿动点击跳转-->
6 <a href="test://splash/mypath?content=从html页⾯传过来的值">点击跳转APP并传值</a>
简易安卓app开发7 </body>
8</html>
9复制代码
准备⼯作都已经做完了,那么上下的就是我们的事情了!
1. 通过外部打开本地app
⾸先我们要理解⼀个URL的具体含义
有了这个那就好说了!当我们隐式启动Activity的时候,都需要配置相应的 intent-filter 当你配置这个东西的时候⼀定会设置相应的属性,那么这个东西就更好说了!
1 <intent-filter>
2 <action android:name="android.intent.action.VIEW" />
3
4 <category android:name="android.intent.category.BROWSABLE" />
5 <category android:name="android.intent.category.DEFAULT" />
6
7 <data android:scheme="test" />
8 <data android:host="splash" />
9 </intent-filter>
10复制代码
这⾥的test是和服务器约定好的内容,也就是scheme中的字段。其实通过以上代码,就可以解决相应的跳转问题了!但是我⼀直在想⼀个问题,为什么需要⾃⼰定义scheme这个字段,为什么不直接⽤http或者https呢?最后我发现其实也是可以的!
2. 获取传递的相应内容
关于获取传递内容的⽅案啊!其实就是从uri中获取相应的参数⽽已。这⾥就直接上代码吧!
1 Intent intent = getIntent();
2 if (intent != null) {
3 //获取整个uri的链接
4 String dataString = DataString();
5 //获取相应Uri中的⼀些内容!
6 Uri data = Data();
7 String scheme = Scheme();
8 String authority = Authority();
9 String host = Host();
10 String port = String.Port());
11 String path = Path();
12 String query = Query();
13 }
14复制代码
这⾥可以获取任何uri中的内容,这⾥提⼀嘴,如果你在闪屏页处理这⾥的逻辑,可以根据path或者port的路径跳转到不同的界⾯。也算是⼀种⽅案
今天就到这⾥吧!好久不写博客了,感觉⾃⼰真的是懒癌患者! 其实也不知道写什么,所以就记录每天开发中的内容吧!哈哈。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论