openUrl命令在Obj-C中有效,但在Swift中无效



我们的代码库在很大程度上仍然是一个混合代码库,但我一直在尝试在Swift中做更多的工作。不幸的是,我遇到了一个奇怪的情况,在Obj-C中运行良好的命令绝对拒绝在Swift中运行。

我正试图将一个文件从我们的一个桌面产品发送到另一个产品。所有URL方案都已正确设置。Obj-C中的这个命令非常有效:

[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"ourotherapp://v1/import?filePath=/Users/gi.joe/Documents/test.wav"]];

然而,在尝试使用Swift版本时,这个版本绝对拒绝执行。没有例外,没有线索,什么都没有:

NSWorkspace.shared.open(URL(fileURLWithPath: "ourotherapp://v1/import?filePath=/Users/gi.joe/Documents/test.wav"))

与Obj-C相比,NSWorkspace在Swift中的工作方式有什么不同吗?我看了苹果的文档,但可能遗漏了什么?

我看到您在Obj C和Swift中尝试了两种不同的调用。

我还没有尝试过下面的代码,也许这个例子对你有帮助:

if let checkURL = NSURL(string: "https://google.com") {
if NSWorkspace.shared().open(checkURL as URL) {
print("URL Successfully Opened")
}
} else {
print("Invalid URL")
}

试试这个:

guard let url = URL(string: "someURL") else { return }
UIApplication.shared.open(url)

相关内容

最新更新