是否可以在许多其他应用程序使用的模块中使用深度链接?
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>
我正在尝试创建一个供其他应用程序使用的 .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>