url 打开时 WebView 加载崩溃
Posted
技术标签:
【中文标题】url 打开时 WebView 加载崩溃【英文标题】:WebView load crashes on url opening 【发布时间】:2022-01-18 20:46:56 【问题描述】:我有一个从 json 检索 url 的应用程序,当用户单击按钮时,UIWebView 会打开该 url。问题是,当我将 utm 代码添加到 url 时,应用程序开始崩溃并且 UIWebView 返回 nil。我的猜测是应用程序无法解析符号“&”并且它崩溃了。我试图通过输入编码符号“%26”来修改 url,但是我遇到了 Google Analytics 没有读取它的问题...... 有没有办法让“&”符号起作用?先感谢您。 我这样称呼 UiWebView:
self.webView.load(URLRequest(url: URL(string: self.link)!))
【问题讨论】:
打印self.link
。 &
是 URL
中的有效字符。例如,空间不是。但是没有self.link
的值,就很难说了。
打印它我看到 & 符号看起来像这样 "&"所以问题是它在html中转换?我不知道为什么会这样
self.link
是什么?
这是包含页面url的字符串,我从json中检索
不管那个字符串是什么,它显然是导致崩溃的原因。但是没有看到它,没有人能告诉你为什么代码会崩溃。正如 SO 所说,“应该更新问题以包含所需的行为、特定问题或错误,以及重现问题所需的最短代码。”在不知道字符串的情况下无法重现它。
【参考方案1】:
正如 cmets 中所提到的,如果您尝试将其转换为 URL,而没有看到它,很难说出您的字符串到底有什么问题。
但是,为避免意外崩溃,您应该安全地解开 URL,而不是使用 URL(string: self.link)!
显式解开它。
例如,您可以创建一个 if let:
if let safeURL = URL(string: self.link)
self.webView.load(URLRequest(url: url)
【讨论】:
以上是关于url 打开时 WebView 加载崩溃的主要内容,如果未能解决你的问题,请参考以下文章