Nav 组件 deeplink 不做条件导航
Nav component deeplink do not do conditional navigation
我正在使用 navcomponent deeplink 选项从通用 link 深入 link 到我的应用程序屏幕。
第 1 步:在 main_nav_graph 文件
中添加了 deeplink 参数
第 2 步:添加到我的 mainactivity
的清单文件
第 3 步:点击短信上的 link 以启动 deeplink
看到的场景:
在我的应用中,SplashActivity 是主启动器。但是 Main Activity 是初始化 navgraph 的地方。所以我在 Manifest
中添加了 main activity 的 navgraph 标签
主要 Activity 添加为单个任务。
现在,当我深入link时,我看到了:
我的 mainactivity 恢复了 2 次(看起来应用程序启动然后关闭然后再次启动并深入 link 到屏幕)
如果用户未登录,我会进行条件检查以停留在导航根视图。但我看到它仍然导航到深层link 屏幕,造成异常情况。
根据 Navigation 2.1.0-alpha06 release notes:
Navigation now suppresses the animation that occurs when recreating the activity when handling a deep link, fixing a visual flash. (b/130362979)
所以您应该升级到 Navigation 2.1.0(目前 2.1.0-rc01
以修复视觉故障)。
其次,根据 conditional navigation documentation,您应该不使用登录屏幕作为图形的根。相反,如果用户未登录,每个需要登录的目的地都应将用户重定向到登录屏幕。这正是为了避免您遇到的情况:您希望用户立即被发送到正确的深层链接屏幕返回堆栈。
我正在使用 navcomponent deeplink 选项从通用 link 深入 link 到我的应用程序屏幕。
第 1 步:在 main_nav_graph 文件
中添加了 deeplink 参数第 2 步:添加到我的 mainactivity
的清单文件第 3 步:点击短信上的 link 以启动 deeplink
看到的场景:
在我的应用中,SplashActivity 是主启动器。但是 Main Activity 是初始化 navgraph 的地方。所以我在 Manifest
中添加了 main activity 的 navgraph 标签主要 Activity 添加为单个任务。
现在,当我深入link时,我看到了:
我的 mainactivity 恢复了 2 次(看起来应用程序启动然后关闭然后再次启动并深入 link 到屏幕)
如果用户未登录,我会进行条件检查以停留在导航根视图。但我看到它仍然导航到深层link 屏幕,造成异常情况。
根据 Navigation 2.1.0-alpha06 release notes:
Navigation now suppresses the animation that occurs when recreating the activity when handling a deep link, fixing a visual flash. (b/130362979)
所以您应该升级到 Navigation 2.1.0(目前 2.1.0-rc01
以修复视觉故障)。
其次,根据 conditional navigation documentation,您应该不使用登录屏幕作为图形的根。相反,如果用户未登录,每个需要登录的目的地都应将用户重定向到登录屏幕。这正是为了避免您遇到的情况:您希望用户立即被发送到正确的深层链接屏幕返回堆栈。