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

问题描述

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

搜索了它,但找不到任何答案。

提前致谢。

解决方法

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

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

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

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

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

通过在为您的 Activity 定义的意图过滤器中使用 $applicationId 键,有一个简单的修复方法。 只需确保您的浏览器在完成后使用正确的 applicationId 调用正确的回调 URL。

以下是该活动清单的完整示例:

<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>