Android系统路由之-scheme实现网页链接携带参数跳转到Activity

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android系统路由之-scheme实现网页链接携带参数跳转到Activity相关的知识,希望对你有一定的参考价值。

参考技术A Scheme这个词语我们可以在Uri使用时见到,有 uri.getScheme() 方法。在android中scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。

我们来看看谷歌官方对其data描述:见 https://developer.android.com/guide/topics/manifest/data-element.html

还有其filter的描述: https://developer.android.com/training/basics/intents/filters.html

以上两个网址我在关掉代理的情况下上不了,讲的很清晰,我只能搬过来了。

翻译过来就是, <data> 是写在 <intent-filter> 中的,格式可以是数据的类型,或者是一个URI。其格式最终为 <scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]

这些属性是可选的,但是也有一些是有依赖关系的,比如如果没有设置 scheme ,则其他的URI属性将被忽略,又或是如果 host 没有被设置,那么 port 属性不生效。

通过manifest,应用向系统注册一个URL scheme,该scheme 用于从浏览器或其他应用中启动本应用。通过指定的 URL 字段,可以让应用在被调起后直接打开某些特定页面,比如商品详情页、活动详情页等等。也可以执行某些指定动作,如完成支付等。也可以在应用内通过 html 页来直接调用显示 app 内的某个页面。

我们最常见的应用场景就是别人分享的一个购物优惠,点开后直接进去了京东的客户端或者是淘宝的客户端。

我们设置了上面的 <intent-filter /> 后,其实就可以通过下面的链接打开我们的activity了。

点击后,若手机安装了我们应用便会直接打开。

也可以原生调用:

通过 Intent ,我们能够拿到跳转的参数,便可以进行应用内的业务处理了。

通过scheme跳转是一个很好的方式,不过后来谷歌2015年的I/O大会上提出了一个新方案 Android M 的"App Links"实现详解 ,感兴趣的可以看看。

好了安卓系统自带的就这么简单的集成,不过这种的缺点是,一个Activity要写一个,如果入口多了,要写很多个,工程大了难以管理。下一章将讲解应用内的路由 Arouter

以上是关于Android系统路由之-scheme实现网页链接携带参数跳转到Activity的主要内容,如果未能解决你的问题,请参考以下文章

Android URL Scheme唤醒之门

IOS之URL Scheme的使用

React Native之配置URL Scheme(iOS Android)

Android Studio 第六十四期 - Android业务组件化之URL Scheme使用

Django之路由系统

Android 从浏览器链接打开App