【问题标题】:WebView load crashes on url openingurl 打开时 WebView 加载崩溃
【发布时间】:2023-03-07 07:05:01
【问题描述】:

我有一个从 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 所说,“应该更新问题以包含所需的行为、特定问题或错误,以及重现问题所需的最短代码。”在不知道字符串的情况下无法重现它。

标签: ios swift uiwebview utm utm-tracking


【解决方案1】:

正如 cmets 中所提到的,如果您尝试将其转换为 URL,而没有看到它,很难说出您的字符串到底有什么问题。

但是,为避免意外崩溃,您应该安全地解开 URL,而不是使用 URL(string: self.link)! 显式解开它。

例如,您可以创建一个 if let:

if let safeURL = URL(string: self.link) {
self.webView.load(URLRequest(url: url)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多