每种口味的 Android 深度链接

标签 android deep-linking

我有多个针对不同应用风格的深层链接方案。我有一个后端,它为每个应用程序发送不同的方案。如果所有这些都安装在同一台设备上,那么所有这些都将能够解析发送的深度链接。因此,当所有三个都安装好并调用 app2 的深层链接时。所有应用程序都能够捕获它,但只有 app2 可以在应用程序中正确处理它,并且应该是唯一能够捕获它的。

在我的 .gradle 文件中定义的风格

productFlavors {
    app1{
        applicationId "com.apps.app1"
    }
    app2{
        applicationId "com.apps.app2"
    }
    app3{
        applicationId "com.apps.app3"
    }
}

我用来捕获 list 中深层链接的 Intent 过滤器。

<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:pathPrefix="/"
        android:scheme="app1" />
    <data
        android:pathPrefix="/"
        android:scheme="app2" />
    <data
        android:pathPrefix="/"
        android:scheme="app3" />
</intent-filter>

有没有办法让深层链接只能被一种风格捕获?

最佳答案

对于 2019 年访问这里的人:您可以根据口味使用 manifestPlaceholders。 在你的情况下:

productFlavors {
  app1{
    applicationId "com.apps.app1"
    manifestPlaceholders.scheme = "app1"
  }
  app2{
    applicationId "com.apps.app2"
    manifestPlaceholders.scheme = "app2"
  }
  app3{
    applicationId "com.apps.app3"
    manifestPlaceholders.scheme = "app3"
  }
}

然后在您的 list 中使用它:

<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:pathPrefix="/"
    android:scheme="${scheme}" />

关于每种口味的 Android 深度链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42971558/

相关文章:

java - 当 Activity 和/或应用程序关闭时保持广播接收器运行?

android - 应用程序如何卡住 Android 操作系统

javascript - history.js 可以在没有哈希的情况下进行 URL 深度链接吗?特点?

android - 从单个 Activity 在 android 中实现深度链接

android - adb 深层链接触发器不适用于某些参数

android - 对话框中的按钮设置事件时android崩溃

java - 无法解决 : com. google.firebase :firebase-core:16. 0.1

android - 105 字符十六进制的 Google Play 商店应用签名 key 问题

ios - 通用深度链接问题

ios - 从 iOS native 应用程序打开 LinkedIn 个人资料页面