您现在的位置是:首页 >学无止境 >Android H5拉起安卓原生方案的介绍与实战(六一篇)网站首页学无止境

Android H5拉起安卓原生方案的介绍与实战(六一篇)

蜗牛、Z 2024-07-19 18:01:01
简介Android H5拉起安卓原生方案的介绍与实战(六一篇)

一、介绍

今天是6.1儿童节,祝大家儿童节快乐。


        言归正传,开始介绍H5拉起原生。如今,在APP应用中,消息大多数采用推送方式比较多,到达率很低或者说无法满足业务的需求。在一些大型活动中,依然需要短信的参与,短信的准确度和到达率几乎是百分百的。短信的富文本格式有限,想要快速的让接收人到达业务线,常常是通过短信内容描述+地址连接。

        在短信内容中,连接是比较好的一种媒介。但是H5的链接也是有限的,大多数开发者还是想通过H5的链接,拉起原生,跳转到原生页面,这样会达到打开原生页面的效果。

        在现在的业务中,我们也经常收到银行、电商等平台的短信,打开这些链接,如果你的手机已安装了他们的应用,可以直接拉起。这就是H5拉起原生的目的。

二、实战

经过以上的业务分析,我们大概了解到。接下来如何实现呢?

实现其实很简单,针对目标页面新增手势过滤intent-filter,这个过滤可以表面当前页面支持启动方式,

比如启动页

android.intent.category.LAUNCHER:申明当前页面可以被launch启动
android.intent.action.MAIN:申明当前页是应用的主入口

这些申明在intent-filter节点下,该节点下也支持data节点,那么如何让页面支持外部启动呢?

Activity支持H5外部连接启动

<intent-filter>

    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data
        android:host="woniu"
        android:pathPrefix="/h5"
        android:scheme="android" />

</intent-filter>

上面是一个简单的支持配置

1、Activity节点需要支持外部调用

android:exported="true"

2、新增启动过滤

2.1、启动一个新页面,这个和我们调用浏览器类似
    <action android:name="android.intent.action.VIEW" />

2.2、设为默认

    <category android:name="android.intent.category.DEFAULT" />

2.3、支持浏览器启动
    <category android:name="android.intent.category.BROWSABLE" />

以上三种是必须的,

接下来我们要介绍data的过滤

           android:host="woniu"
        android:pathPrefix="/h5"
        android:scheme="android"

1.android:host

类似主机名,或者网页的域名,一般来说,如果你的页面支持h5拉起,必须配置,否则h5在启动无法找到。同样,host也会在打包的时候,与当前页面进行关联

2.android:pathPrefix:路径配置

如果没有配置路径,那么只要符合host的域名和android:scheme(可以为空)前缀的都可以通过

常见的配置和地址类似,/home

3.android:scheme

前缀,可以为空

连接拼写:

scheme+://+host+pathPrefix

其中,scheme和pathPrefix可以为空。

这种写法其实就是Uri的拼接格式,最后在跳转的时候,也转换成Uri。感兴趣的可以查看Uri的格式。

如果有参数,直接拼接在pathPrefix后面

如:android://woniu/h5?name=woniu&sex=boy

注意:拉起在H5是,是通过超链接完成或者onclick方法

<a href="android://woniu/h5?name=woniu&sex=boy">点击拉起原生</a>

参数的获取可以在getData中进行获取

3、支持

所有的Activity都可以支持外部的访问,一个Activity可以支持多个intent-filter,也就是说支持多种格式,intent-filter的size[0,n)

三、总结

通过以上的步骤,我们已掌握了H5拉起原生页面,也掌握了必要的配置信息,基本能符合页面的拉起需求,如果你有特殊需求,可以在应用中进行扩展。

六一特别篇,谁还不是个宝宝么。六一节快乐

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。