单击 Swift 上的按钮时如何打开 pdf link?
How can I open a pdf link when click a button on Swift?
我正在尝试从我的 Swift
应用程序打开 pdf,但无法正常工作。
我知道有很多与此相关的问题,其中大部分都使用以下代码:
UIApplication.shared.openURL(URL(string: "http://www.url.com" + id)!)
但我收到以下错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
所以我认为错误是因为 id
是零所以我制作了两个 prints
来查看检索到的内容:一个用于 url
一个用于 id
.它们都是正确的,如果我在浏览器导航栏上复制 url 它可以完美地工作(我无法提供真实的 url
因为它是客户端的)。
我将此函数封装在 @IBAction
中以检测何时单击按钮,因此我查看连接是否已断开。也是对的。
所以我不明白为什么会出现这个错误。我花了几个小时但无法弄清楚是什么导致了这个错误。
我错过了什么吗?我应该以某种方式编纂 url 吗?
P.S: 我正在使用 Xcode8
和 Swift3
.
更新: 如果我设置 www.google.es
它运行良好。在 url 中使用变量会不会有问题?
提前致谢!
最后,经过几个小时搜索问题并遵循 @rmaddy
的建议(谢谢!)我将函数分为三个部分,我可以看到 URL 正在返回 nil
值。
这很奇怪,因为我可以将字符串复制到我的浏览器导航栏中并且它运行良好,所以我认为它可能与编码有关。有一次我对它进行编码,我注意到 pdf 的 id
是在 id
的最后用 \r
检索到的。像这样:
id004.pdf\r
我的解决方案如下:
var string = "http://www.url.com" + id
var index1 = string.index(string.endIndex, offsetBy: -1)
var substring1 = string.substring(to: index1)
let encodedString = substring1.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
UIApplication.shared.openURL(NSURL(string: encodedString!) as! URL)
编码字符串是必需的,否则 link 将不再有效。
我正在尝试从我的 Swift
应用程序打开 pdf,但无法正常工作。
我知道有很多与此相关的问题,其中大部分都使用以下代码:
UIApplication.shared.openURL(URL(string: "http://www.url.com" + id)!)
但我收到以下错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
所以我认为错误是因为 id
是零所以我制作了两个 prints
来查看检索到的内容:一个用于 url
一个用于 id
.它们都是正确的,如果我在浏览器导航栏上复制 url 它可以完美地工作(我无法提供真实的 url
因为它是客户端的)。
我将此函数封装在 @IBAction
中以检测何时单击按钮,因此我查看连接是否已断开。也是对的。
所以我不明白为什么会出现这个错误。我花了几个小时但无法弄清楚是什么导致了这个错误。
我错过了什么吗?我应该以某种方式编纂 url 吗?
P.S: 我正在使用 Xcode8
和 Swift3
.
更新: 如果我设置 www.google.es
它运行良好。在 url 中使用变量会不会有问题?
提前致谢!
最后,经过几个小时搜索问题并遵循 @rmaddy
的建议(谢谢!)我将函数分为三个部分,我可以看到 URL 正在返回 nil
值。
这很奇怪,因为我可以将字符串复制到我的浏览器导航栏中并且它运行良好,所以我认为它可能与编码有关。有一次我对它进行编码,我注意到 pdf 的 id
是在 id
的最后用 \r
检索到的。像这样:
id004.pdf\r
我的解决方案如下:
var string = "http://www.url.com" + id
var index1 = string.index(string.endIndex, offsetBy: -1)
var substring1 = string.substring(to: index1)
let encodedString = substring1.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
UIApplication.shared.openURL(NSURL(string: encodedString!) as! URL)
编码字符串是必需的,否则 link 将不再有效。