iOS Deeplink 在启动应用程序时不起作用

Posted

技术标签:

【中文标题】iOS Deeplink 在启动应用程序时不起作用【英文标题】:iOS Deeplink doesn't work when launching the app 【发布时间】:2021-02-14 20:32:41 【问题描述】:

我在我的应用中实现了深层链接,一切正常,除了一件事:

如果应用关闭,虽然深层链接会识别并启动应用,但不会调用openURL方法:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options

- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts API_AVAILABLE(ios(13.0))

它总是调用:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

选项为零。

架构设置正确。

回顾一下:

当应用已经打开时,深度链接在任何情况下都能正常工作;

如果应用关闭,应用会与深层链接架构相关联,然后会打开,但是没有要解析的 URL。

在模拟器和真实设备上都经过测试。

有人知道为什么会发生这种情况吗?

谢谢。

【问题讨论】:

【参考方案1】:

如果你有窗口场景,这一切都取决于你对scene:willConnectToSession:options: 的实现。 URL 位于options

【讨论】:

感谢您的回答。我真的错过了检查这种方法。但是,它似乎只在某些情况下有效。如果我完全关闭应用程序并打开一个深层链接,它似乎不会被调用。我第一次尝试它工作但可能是因为它恢复了在后台暂停的现有会话。这对你有意义吗? 好吧,我没有义务使用通用链接。就我的目的而言,架构就足够且易于设置。实际上,除了这方面,一切都正常工作,并且仅在 iOS 上(在 tvOS 上运行良好)。问题不在于userActivities,一旦调用该方法,一切顺利。问题是,当应用程序从深层链接调用时,该方法不会被调用,而它是关闭的。我只调用了一次,但我不知道为什么。

以上是关于iOS Deeplink 在启动应用程序时不起作用的主要内容,如果未能解决你的问题,请参考以下文章

进程启动但在使用 CreateProcessLogonW 或类似方法启动时不起作用

使用@Cacheable 的Spring 缓存在启动@PostConstruct 时不起作用

Qt - pdftocairo pdf转换过程在应用程序自动启动时不起作用

ios json在使用include()时不起作用

为啥 RequestAdditionalTime() 方法在 Vista/7 中重新启动时不起作用?

使用 QProcess 启动 pg_dumpall 时不起作用