iOS 18.0 共享扩展打开应用程序 URL 无法工作
Xcode 16 斯威夫特 5.9
private func openMainApp() {
let urlScheme = "AppName://"
if let url = URL(string: urlScheme) {
if self.openURL(url) {
print( "RUN : APP")
} else {
print( "NOT RUN : APP")
}
close()
}
}
@objc private func openURL(_ url: URL) -> Bool {
var responder: UIResponder? = self
while responder != nil {
if let application = responder as? UIApplication {
return application.perform(#selector(openURL(_:)), with: url) != nil
}
responder = responder?.next
}
return false
}
我还在AppName中放入了我的应用程序名称,并确认它在iOS 17版本中正常工作,但在18版本中不起作用。
我以为应用程序的名称不同 我改了名字 我通过模拟其他应用版本检查过,但只有 iOS 18 才会出现这种情况。 另外,当你用真实设备构建它时,它仍然无法工作。
@discardableResult
@objc func openURL(_ url: URL) -> Bool {
var responder: UIResponder? = self
while responder != nil {
if let application = responder as? UIApplication {
application.open(url, options: [:]) { success in
if success {
print("App opened successfully")
} else {
print("Failed to open app")
}
}
return true
}
responder = responder?.next
}
return false
}