代码之家  ›  专栏  ›  技术社区  ›  Fahim Parkar

链接未在uiwebview中打开

  •  -1
  • Fahim Parkar  · 技术社区  · 7 年前

    https://payood.test/loofpay/XUYZGlobal/WebForms/checkoutservice%20.aspx?paymentchannel=ddd&isysid=37268474138868&amount=25&description=Transaction http://localhost:55766/dsss/Response.aspx&hash=BE0481E5F9AA1C9F5B26A8E93A6ACAAD5888EDE9

    fatal error: unexpectedly found nil while unwrapping an Optional value
    

    link = above link....
    webView.loadRequest(URLRequest(url: URL(string: link)!))
    

    注:

    如果我使用简单链接作为 http://www.google.com

    3 回复  |  直到 6 年前
        1
  •  2
  •   Rob Napier    7 年前

    您发布的链接不是有效的URL。它在您的描述中包含空格。你没有正确编码。

        2
  •  0
  •   Mojtaba Hosseini    7 年前

    正如其他人提到的,问题在于您提供的链接 URL initializer 是无效的 url 因为 !

    URL(string: link)!
    

    因此,您必须将字符串更改为某个有效的url 之前 从中初始化URL。这样地:

    guard let escapedURLString = link.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) else {
        fatalError("Unknown URL string:\(link)")
    }
    
    guard let finalURL = URL(string: escapedURLString) else {
        fatalError("Can not create a url from:\(escapedURLString)")
    }
    
    print(finalURL) //to check if it works
    webView.loadRequest(URLRequest(url: finalURL))
    
        3
  •  0
  •   Fahim Parkar    7 年前

    所以我用%20替换空格

    link = link.replacingOccurrences(of: " ", with: "%20")
    

    推荐文章