2017-02-02 44 views
1

IM在WKWebView工作,當我不帶參數加載URL這樣它工作正常意外地發現零而展開的可選值WKWebView得到參數

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) 
} 

,但我想用GET參數,這樣發送用戶位置

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

謝謝你是進步

+0

如果第一個函數有效,那麼requestURL就有問題。在第二個功能的情況下,檢查url是否存在或不是試圖加載它在iPhone的Safari瀏覽器。 –

+0

您可以逐步完成您的功能,並請檢查「nil」值是多少?它是'requestURL'嗎?並嘗試使用沒有NS前綴的API的新版本。 – Kie

回答

2

嘗試編碼您的url並使用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)) 
} 

編輯:我已經試過您在評論添加它完美呈現,當你與urlQueryAllowed編碼它的URL。可能你還沒有添加NSAppTransportSecurity與你的info.plist文件嘗試添加一次,它也適用於你。

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

我在想幾乎是相同的,注入到網址的雙打搞砸了URL格式,因此URL(字符串:)返回零。 – Kie

+0

@Kie是和那裏需要編碼的網址:) –

+0

當我打印(url.absoluteString)它顯示的網址是正確的,但問題仍然是相同的 –

相關問題