gpt4 book ai didi

ios - 覆盖 canOpenUrl(_ :) AppDelegate

转载 作者:搜寻专家 更新时间:2023-11-01 07:13:22 27 4
gpt4 key购买 nike

我有两个应用程序通过 openUrl 相互通信。我希望能够在打开第二个应用程序之前检查几项内容。

即App1 想要启动 App2。因此 App2 检查它是否可以打开给定的 URL。如果可以,继续发布。如果不能,则停止启动并在 App1 上显示错误。

iOS 似乎已经有了这个功能,但我不知道如何让它工作。

这是来自 App1 的示例代码,它将启动 App2

let url = URL(string: "APP2://Screen1")   
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: { _ in })
} else {
self.showError("Couldn't Open App2")
}

这是尝试接受 URL 的 App2 示例代码。

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
guard options[.sourceApplication] as? String == "com.test.app1" else { return false }

if self.canLogInFrom(url) {
return true
else {
return false
}

如果我返回 false,它仍然会继续启动。无论我在此函数中返回什么,它都会启动 App2。

App2 中有没有一种方法可以实现 AppDelegate CanOpenURL 函数?

最佳答案

App1 只能检查 App2 是否已安装,是否可以启动启动以及初始启动是否成功。

App1 无法获取App2 的application(_:open:options:) 方法中使用的结果。

您唯一的选择是让 App2 转身并使用告诉 App1 启动因某种原因失败的 URL 启动 App1。

关于ios - 覆盖 canOpenUrl(_ :) AppDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43638507/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com