ios - 在展开可选值 WKWebView 获取参数时意外发现 nil

标签 ios swift wkwebview

我在 WKWebView 上工作,当我加载一个没有参数的 url 时,它工作正常

func loadAddress(lat:Double,lng:Double){
    let requestURL = NSURL(string:"http://url.com/dev2/billboard/geo")
    let request = NSURLRequest(url: requestURL as! URL)
    webview.load(request as URLRequest)
}

但我想用这样的获取参数发送用户的位置

func loadAddress(lat:Double,lng:Double){
    let requestURL = NSURL(string:"http://url.com/dev2/billboard/geo/\(lat)/\(lng)")
    let request = NSURLRequest(url: requestURL as! URL)
    webview.load(request as URLRequest)
}

它显示了这个错误:

fatal error: unexpectedly found nil while unwrapping an Optional value 2017-02-02 16:43:36.645898 pixel[5112:1996136] fatal error: unexpectedly found nil while unwrapping an Optional value

谢谢提前

最佳答案

尝试对您的网址进行编码并使用 Swift 原生类型 URLURLRequest而不是 NSURLNSURLRequest

let stringUrl = "http://url.com/dev2/billboard/geo/\(lat)/\(lng)"
if let encodedURL = stringUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed),
   let url = URL(string: encodedURL) {
      webview.load(URLRequest(url: url))
}

编辑: 我已经尝试过您在评论中添加的 url,当您使用 urlQueryAllowed 对其进行编码时,它可以完美显示。可能是您还没有将 NSAppTransportSecurity 添加到您的 info.plist 文件中尝试添加一次,它也适用于您。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

关于ios - 在展开可选值 WKWebView 获取参数时意外发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42001432/

相关文章:

ios - 如何制作 SKSpriteNode 数组,然后将它们显示在屏幕上?

ios - Web View 异常

ios - 使用 KVO 观察 WKWebView 的 URL 属性在 iOS 10 中不起作用

ios - 一个活跃的 iOS 应用程序可以知道何时显示另一个应用程序的推送通知吗?

ios - UISearchBar 不会在 UISplitviewController Master 中响应

ios - 在 Swift 中创建日历

swift - 为什么要在模型中使用私有(private)变量?

ios - 使用 xcode 4.6 从 ios 模拟到 ios 设备

ios - 在 iOS 应用程序上重播页面

ios - WKWebview如何处理文件上传?