如何使用 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 应用程序并支持最小化/恢复应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
android中的Branch.io deeplink无论如何都会打开Play商店
如何使用 Branch.io Deeplinking 获取我的 Android 应用程序并支持最小化/恢复应用程序?