【问题标题】:How to access username and password entered into a WKWebView in Swift 3如何访问在 Swift 3 中输入到 WKWebView 中的用户名和密码
【发布时间】:2017-12-10 05:45:34
【问题描述】:

我正在尝试使用 Swift 3 中的 WKWebView 构建 iOS 应用程序。WebView 从其 URL 加载网站。我需要能够访问用户在 WebView 中输入的用户名和密码,以便在用户单击提交按钮时将其保存到 UserDefaults。有没有办法做到这一点?谢谢!!

【问题讨论】:

    标签: javascript swift xcode swift3 wkwebview


    【解决方案1】:

    funcionando en xcode 12.4

    扩展视图控制器:WKNavigationDelegate{

    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
        
    
        let lurl:String = webView.url?.absoluteString ?? ""
        
        if (lurl.contains(pagweb+"index.php")) { 
            let defaults = UserDefaults.standard
            var user:String = ""
            var pass:String = ""
            var rememberme: Bool = false
            
            wv.evaluateJavaScript("document.getElementById('user').value;") { (res, error) in
                if res != nil {
                    user = res as! String
                }
            }
            wv.evaluateJavaScript("document.getElementById('pass').value;"){ (res, error) in
                if res != nil {
                    pass = res as! String
                }
            }
            wv.evaluateJavaScript("document.getElementById('rememberme').checked;"){ (res, error) in
                if res != nil {
                    rememberme = res as! Bool
                    if rememberme {
                        defaults.set(user, forKey: "USERNAME")
                        defaults.set(pass, forKey: "PASSWORD")
                        defaults.set(true, forKey: "rememberme")
                    }else if pass.count > 7 && user.count > 0{
                        defaults.set("", forKey: "USERNAME")
                        defaults.set("", forKey: "PASSWORD")
                        defaults.set(false, forKey: "rememberme")
                    }
                }
            }
            
        }
    }
    

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

        // user - pass - rememberme
        let savedUsername = UserDefaults.standard.string(forKey: "USERNAME")
        let savedPassword = UserDefaults.standard.string(forKey: "PASSWORD")
        let savedrememberme = UserDefaults.standard.bool(forKey: "rememberme")
        
        if savedrememberme {
            wv.evaluateJavaScript("document.getElementById('user').value = '"+savedUsername!+"';")
            wv.evaluateJavaScript("document.getElementById('pass').value = '"+savedPassword!+"';")
            wv.evaluateJavaScript("document.getElementById('rememberme').checked = true;")
        }else{
            wv.evaluateJavaScript("document.getElementById('user').value = '';")
            wv.evaluateJavaScript("document.getElementById('pass').value = '';")
            wv.evaluateJavaScript("document.getElementById('rememberme').checked = false;")
        }
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多