安卓scheme_url调端:在AndroidManifest.xml 中如何配置 Intent-filter?

简介: 为了使Android应用响应vivo和oppo浏览器的Deep Link或自定义scheme调用,需在`AndroidManifest.xml`中配置`intent-filter`。定义启动的Activity及其支持的scheme和host,并确保Activity可由外部应用启动。示例展示了如何配置HTTP/HTTPS及自定义scheme,以及如何通过浏览器和adb命令进行测试,确保配置正确无误。

这可以通过在 AndroidManifest.xml 中配置 intent-filter 来实现。为了确保你的应用能够正确响应来自 vivo 和 oppo 浏览器的 deep link 或自定义 scheme 调用,你需要对 intent-filter 做相应配置。


基本配置步骤

  1. 定义 Intent Filter:为你要启动的 Activity 定义 intent-filter。
  2. 配置支持的 Scheme 和 Host:根据需要配置 URL scheme 和 host。
  3. 确保 Activity 可被外部应用启动。



AndroidManifest.xml 配置示例

下面是一个完整的 AndroidManifest.xml 配置示例,其中包含了常见的配置以便你的应用能够被 vivo 和 oppo 浏览器调用:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <!-- Deep Link 配置 -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                
                <!-- 配置 HTTP 和 HTTPS 链接 -->
                <data android:scheme="http" android:host="www.example.com" />
                <data android:scheme="https" android:host="www.example.com" />
            </intent-filter>
            
            <!-- 自定义 Scheme 配置 -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                
                <!-- 配置自定义 Scheme -->
                <data android:scheme="yourapp" android:host="open" />
            </intent-filter>
        </activity>
    </application>
</manifest>



具体解释

  1. Deep Link 配置:
  • 通过 android.intent.action.VIEW action 和 DEFAULT、BROWSABLE categories,使你的应用可以响应来自浏览器和其他支持 deep link 的应用的请求。
  • data 元素中的 android:scheme 和 android:host 指定了你的应用支持的 URL scheme 和主机名。
  • 例子中配置支持:
  1. 自定义 URL Scheme 配置:
  • 通过 android.intent.action.VIEW action 和 DEFAULT、BROWSABLE categories 使得你的应用可以响应自定义 URL scheme 的请求。
  • data 元素中的 android:scheme 和 android:host 指定了自定义的 scheme。
  • 例子中配置支持:
  • yourapp://open
  1. 确保 Activity 可被外部应用启动:
  • 设置 android:exported="true" 属性,确保该 Activity 可以被外部应用启动。



调用示例

  • 通过浏览器或其他支持 deep link 的应用调用:
    plaintext
http://www.example.com
https://www.example.com
  • 通过自定义 URL scheme 调用:
    plaintext
yourapp://open



测试你的配置

为了确保你的配置正确,并且 vivo 和 oppo 浏览器能够调用你的应用,可以通过以下方式进行测试:

  1. 在浏览器中输入 deep link URL:
  1. 通过 adb 命令测试:
  • 你也可以使用 adb 命令来测试 deep link 和自定义 scheme,确保它们能正确打开你的应用。
  1. sh
adb shell am start -a android.intent.action.VIEW -d "http://www.example.com"
adb shell am start -a android.intent.action.VIEW -d "yourapp://open"

通过以上步骤配置和测试,你可以确保你的应用能够被 vivo 和 oppo 浏览器调用。根据具体的需求,你可能需要调整 android:scheme 和 android:host 的配置。



相关文章
|
8天前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
17 1
|
12天前
|
存储 Java 数据库
基于全志H713 Android 11:给TvSettings添加default.xml默认值
本文介绍了在全志H713 Android 11平台上为TvSettings应用添加HDMI CEC功能的默认设置值的方法,通过修改SettingsProvider的源码和配置文件来实现默认值的设置,并提供了详细的步骤和测试结果。
26 0
基于全志H713 Android 11:给TvSettings添加default.xml默认值
|
1月前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
73 12
|
17天前
|
前端开发 API
【API管理 APIM】APIM中如何配置使用URL路径的方式传递参数(如由test.htm?name=xxx 变为test\xxx)
【API管理 APIM】APIM中如何配置使用URL路径的方式传递参数(如由test.htm?name=xxx 变为test\xxx)
|
XML 存储 JSON
Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
250 0
|
XML Android开发 数据格式
Android 解析AndroidManifest.xml文件
1. 格式解析 1). AndroidManifest.xml文件格式 看雪大神--原图地址 图1.png 图中可以清晰的看出AndroidManifest.
1239 0
|
XML Android开发 数据格式
Android XStream 解析xml数据变成bean,支持CDATA
参考 1、Android 用 XStream 将复杂xml解析为javabean 2、XStream支持CDATA标签 3、Retrofit 用Soap协议访问WebService 详解 实例 留着上一篇retrofit访问webservice后,...
1802 0
|
XML Android开发 数据格式
|
XML JavaScript Android开发