WKWebView快速抛出HTTP错误401-授权在CocoaMac应用程序中失败

问题描述

我正在Mac应用程序中打开webApplication,以打开webApplication我正在使用webView.load方法在webView中显示内容。大多数时候可以加载内容,但有时会抛出“授权失败”错误。这是一个间歇性问题。

func webView(_ webView: WKWebView,decidePolicyFor navigationResponse: WKNavigationResponse,decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {

        if let response = navigationResponse.response as? HTTPURLResponse {
            print("Response: \(response)")
            
            if response.statusCode == 401 {

使用AppleConnect singleSignOn的WebApplication。

func webView(_ webView: WKWebView,didReceive challenge: URLAuthenticationChallenge,completionHandler: @escaping (URLSession.AuthChallengeDisposition,URLCredential?) -> Void) {
        if let serverTrust = challenge.protectionSpace.serverTrust {
            completionHandler(URLSession.AuthChallengeDisposition.performDefaultHandling,URLCredential(trust: serverTrust))
            //completionHandler(URLSession.AuthChallengeDisposition.performDefaultHandling,nil)
            
        }
    }

此错误仅在Big Sur OS上出现,在Catalina中不出现,并且这是一个间歇性问题,不连续。有人遇到过这个问题吗?

enter image description here

解决方法

要解决授权失败错误,我添加了非永久性代码

let webViewConfig = WKWebViewConfiguration()
webView = WKWebView(frame: view.frame,configuration: webViewConfig)

/ ** @abstract返回一个新的非持久数据存储。 @discussion如果WKWebView与非持久数据存储相关联,则不会有任何数据 写入文件系统。这对于在Web视图中实现“私人浏览”很有用。 * /

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...