javascript - 将本地存储从 swift 注入(inject)到 WKWebview

标签 javascript ios swift cocoa-touch wkwebview

我的 Swift 代码:

self.webView.evaluateJavaScript("javascript: localStorage.setItem('usr_dtls', 'vivek')") { (result, error) -> Void in
            print(result)
            print(error)
        }

Error message in cosole:
nil
Optional(Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=SecurityError (DOM Exception 18): The operation is insecure., WKJavaScriptExceptionColumnNumber=25, WKJavaScriptExceptionSourceURL=about:blank, NSLocalizedDescription=A JavaScript exception occurred})

知道哪里出了问题吗?

最佳答案

//Found a solution.Execute Javascript after webView finished loading
//Sample code:

    self.webView.navigationDelegate = self

    func webView(_ webView: WKWebView,
                     didFinish navigation: WKNavigation!)
        {
            self.webView.evaluateJavaScript("localStorage.setItem('usr_dtls', 'vivek')") { (result, error) -> Void in

                print("Finished navigation and Local storage injection.")
            }
        }
    //Run the app and debug using Safari Technology Preview
    //You will see the injected data as Show in the image below:

    [![Screenshot][1]][1]


      [1]: /image/tzGUc.png

关于javascript - 将本地存储从 swift 注入(inject)到 WKWebview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47832273/

相关文章:

javascript - Angular 中独特的 ng 选项

javascript - 用setTimeout注册的函数什么时候被调用?

ios - 在扩展中的弱属性上添加 didSet 观察者

由于没有文档导致 iOS 图表错误

ios - 在 Swift 中找不到自定义类成员

javascript - 减少http请求应该先做什么?

javascript - 使用 javascript/jQuery 获取 data-* 属性列表

iOS Swift 自定义单元格函数

IOS:使用dispatch_async的单元测试未执行

ios - AFNetworking 3.0 和使用 setSessionDidReceiveAuthenticationChallengeBlock 的 SSL 身份验证