[关闭应用程序时从URL方案中打开内容

问题描述 投票:0回答:1

我的问题

我正在应用程序中实现URL方案,当应用程序位于前台或后台时,它们总体上可以正常工作。但是,我注意到,当它完全关闭并且另一个应用尝试使用通常可以正常工作的URL(例如app:page?image=1)访问内容时,它只是打开了该应用,但从未捕获到该内容。

我的方法

我已经在AppDelegate和SceneDelegate方法中都设置了代码

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:])

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {

期望的行为

[当应用程序在后台,前景或关闭时打开

实际行为

仅在前景或背景中打开

ios swift appdelegate url-scheme uiscenedelegate
1个回答
1
投票

由于您的应用当前为not running,因此将使用这些启动选项启动。即这些选项将改为传递给willFinishLaunchingWithOptions: / didFinishLaunchingWithOptions:。将您的代码添加到以下方法之一。

有关更多信息,请阅读有关如何Respond to the Launch of Your App,或更具体地说Determine Why Your App Was Launched的文档。

编辑:

正如下面@ paulw11所评论的,场景委托的工作方式不同,必须单独处理。

但是,在Respond to Scene-Based Life-Cycle Events部分中,最后一点是:

除了与场景有关的事件,您还必须响应使用UIApplicationDelegate对象启动应用。对于有关应用启动时的操作的信息,请参见Responding to the Launch of Your App

所以我想,我们仍然需要处理willdidFinishLaunchingWithOptions / didFinishLaunchingWithOptions中的启动。

© www.soinside.com 2019 - 2024. All rights reserved.