无法在 WKWebView 上使用“&”字符进行 google 搜索

Can't do google search with "&" character on WKWebView

我的应用程序中有一个 WKWebView 允许用户在 Google 上搜索。

一切正常,但使用“&”字符进行搜索。例如,如果我搜索 at&t,我将得到 at.

的搜索结果

如果我在 didCommitNavigation 中打印我的网络视图的 url,我可以看到正确的搜索词 at&t

func webView(webView: WKWebView, didCommitNavigation navigation: WKNavigation!)
{
        print(webView.URL?.absoluteString)
}

returns

https://www.google.fr/search?hl=en&q=at&t=&gws_rd=cr,ssl&ei=8f-hV4iJGM-ba6qvh-gJ

我们可以看到 q 参数:q=at&t 而结果页面与 q=at 相同。

任何解决该问题的想法都将不胜感激。

正如 this 所验证的那样,& 不会以通常的方式自动转义,因此您可能必须手动处理搜索字符串(无论您的用户在何处输入条款,只需在获取时替换 &从那里):

let searchterm = getTermFromWherever()
let actualterm = searchterm.stringByReplacingOccurrencesOfString("&", withString: "%26")

这应该有效。