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转换过程在应用程序自动启动时不起作用