是否可以在许多其他应用程序使用的模块中使用深度链接?

Is It possible to use deeplink in a Module that is used by many other applications?

我正在尝试创建一个供其他应用程序使用的 .aar 文件。在该模块中,用户因支付需要退出应用。我想在付款完成并点击网站上的按钮后打开应用程序。如果它在我的应用程序中,我可以通过在清单中为深度 link 添加一个 intent-filter 来轻松处理它。但是现在我不知道如何读取清单并读取应用程序上定义的深度link。

我搜索了一下,没有找到任何答案。

提前致谢。

您可以将 Activity 添加到您的 Android 模块(库)并在清单中为您的 Activity 定义相同的 intent-filter

因此,当浏览器完成支付流程后,它们可以启动您图书馆的 Activity 使用深层链接。

我强烈建议您也阅读 Android App Links

这样您就可以在您的 .aar 中处理所有事情,最终应用程序开发人员不必为您扮演中继角色。

这种方法有一个重要的问题,那就是当多个应用程序将您的 .aar 集成到同一设备上时要小心。 在这种情况下,在付款流程后,Android 会向用户建议这两个应用程序,这是错误的,可能会导致意外结果。

通过在为您的 Activity 定义的 intent-filter 中使用 $applicationId 键,可以简单地解决这个问题。 只需确保您的浏览器在完成后将使用正确的 applicationId 调用正确的回调 -URL。

这是 Activity 清单的完整示例:

<activity
            android:name=".CallBackActivity"
            android:label="@string/app_name">

            <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:scheme="https" />
                 <data android:host="www.yourDomainName.com" />
                 <data android:pathPattern="payment/$applicationId" />
            </intent-filter>
</activity>