如何使用 Branch.io Deeplinking 获取我的 Android 应用程序并支持最小化/恢复应用程序?

Posted

技术标签:

【中文标题】如何使用 Branch.io Deeplinking 获取我的 Android 应用程序并支持最小化/恢复应用程序?【英文标题】:How can I get my Android app with use Branch.io Deeplinking AND support minimize/resume the app? 【发布时间】:2017-08-22 18:32:12 【问题描述】:

我在我的 android 应用程序中使用 Branch.io 深度链接,并且在大多数情况下,它在大多数情况下都能正常工作。但是,我有一个注册用户(到我的服务)的场景;在该流程中,用户请求 SMS 验证码,因此必须离开应用程序(最小化)才能读取它,然后重新进入应用程序(恢复)以验证代码。

我在实现 branch.io 之前 让这种行为完美运行,原因与 Branch.io 在 AndroidManifest.xml 文件中需要 android:launchMode="singleTask" (见here)。

<activity
   android:name="com.yourapp.SplashActivity"
   android:label="@string/app_name"
   android:launchMode="singleTask"
   ...

删除android:launchMode="singleTask" 后,用户可以随意离开/进入应用程序,并且始终返回到他们在最小化应用程序时所在的同一活动。然而,Branch.io 深度链接不再受到尊重。

然而,这种最小化/恢复行为似乎(?)可能与 Branch.io 实现。是吗? 如何保留我的应用程序的最小化/恢复功能,实现 Branch.io 深度链接?

【问题讨论】:

那么当你集成了Branch 后,最小化App 的行为是什么?同一个Activity没有打开吗? @AmrutaDeshmukh 当 Branch.io 正确集成时(即,当 android:launchMode="singleTask" 包含在清单中时),应用程序总是在初始屏幕上打开。 最小化是指只需向右按主页按钮而不是完全关闭应用程序。正确的?我的 Github 帐户上有一个示例应用程序 没错。哦耶?我在你的 github 上看到了 branch_web。不过,这看起来与网络有关。回购叫什么? 不幸的是,这是默认的 Android 行为。 IE。单击应用程序图标将重新启动启动器活动。此外,我们要求用于深度链接的活动将启动模式设置为SingleTask,以避免在活动堆栈中创建多个活动实例。如果您将 Launch 模式重置为默认值,则会打开同一 Activity 的多个实例并导致深度链接出现问题。 【参考方案1】:

除了 Amruta 的评论之外,我还想做出贡献。由于正确的深度链接需要 singleTask 以避免同一活动的多个实例,因此我们尚未提及的针对此问题的最佳解决方法/建议是创建 transparent 深度链接活动。这样,您可以为 singleTask 设置一个丢弃的透明活动,从中初始化会话 -> 获取参数 -> 相应地路由。否则,您将无法根据我们使用 singleTask 的要求调整您的主应用程序流程。这往往是最流行的解决方法!

【讨论】:

以上是关于如何使用 Branch.io Deeplinking 获取我的 Android 应用程序并支持最小化/恢复应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Branch.io 跟踪没有奖励的推荐

android中的Branch.io deeplink无论如何都会打开Play商店

如何使用 Branch.io Deeplinking 获取我的 Android 应用程序并支持最小化/恢复应用程序?

Branch.io + Unity:如何设置 Apple Search Ads?

(Branch.io) Android 中的推荐集成

如何在 Ionic 2/3 应用程序中使用 branch.io 创建 Android 应用程序链接?