ios - OpenURL 无法打开某些非常具体的 URL 并显示错误 "Download Failed"

标签 ios objective-c swift

我想用苹果设备的Safari浏览器打开一些网址。而且我的 openURL 函数在大多数情况下都能正常工作。但是,当我尝试打开此 URL 时,它失败并出现以下错误

Download Failed Safari cannot download file.

这是失败的 URL: https://www.youtube.com/v/QH2-TGUlwu4?version=3&autohide=1

这是我的代码:

let url = "https://www.youtube.com/v/QH2-TGUlwu4?version=3&autohide=1"
if let nsurl = NSURL(string: url){
    if UIApplication.sharedApplication().canOpenURL(nsurl){
        UIApplication.sharedApplication().openURL(nsurl)
    }else{
        print("Cannot open this NSURL.")
    }
}else{
    print("Cannot convert String to NSURL.")
}

最佳答案

您提到的网址 https://www.youtube.com/v/QH2-TGUlwu4?version=3&autohide=1 包含一个 SWF 文件,即 Shockwave Flash 文件。

Flash 无法在基于 iOS 的设备上播放 (link)。

1) 您需要向用户显示适当的错误消息。

2) 或者您可以将用户重定向到 YouTube 应用程序(而不是 Safari),用户可以在其中流式传输和观看视频。 看这个Apple doc link了解如何将用户重定向到 YouTube 应用。

关于ios - OpenURL 无法打开某些非常具体的 URL 并显示错误 "Download Failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41628786/

相关文章:

ios tableview 表中的最后一个单元格缺少分隔符 swift

swift - cocoa 图形故障

ios - 在 tableView 中下载图像(_ :, cellForRowAt :)

ios - CoreData 和 "Allows External Storage"选项

ios - 无法从 iOS 中获取核心数据获取正确的 int 值

ios - 在 iOS 中启动应用程序时如何复制 sqlite 数据库?

ios - 我遇到 TAP 付款问题

ios - 用于 Xcode 托管配置文件设置的 Azure Pipelines 配置 - 可能吗?记录在案?

ios - 如何使用 Storyboard将 UISegmentedControl 添加到我的 UIToolbar?

c++ - ios OpenCV 增加图像尺寸