Автоматический вход WKwebview - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть проект swift 4, и я хотел бы иметь функцию автоматического входа в систему, что означает, что когда пользователи вошли в систему один раз и он перезапустил приложение, он автоматически вошел в систему. Как я могу это сделать, вот мой код: Я использую WKwebview, чтобы сделать это, я использовал Swift 4, если это помогает. Я также попытался добавить пул процессов, как вы можете видеть в коде, но он не работает.

import UIKit
import WebKit

class viewHome: UIViewController, WKUIDelegate, WKNavigationDelegate {

weak var navigationDelegate: WKNavigationDelegate?

static let processPool = WKProcessPool()

@IBOutlet var webViewHome: WKWebView!

 override func loadView() {
       let webConfiguration = WKWebViewConfiguration()
       webConfiguration.processPool = viewHome.processPool
       webViewHome = WKWebView(frame: .zero, configuration: webConfiguration)
       webViewHome.uiDelegate = self
       webViewHome.configuration.preferences.javaScriptEnabled = true
       //webViewHome.configuration.preferences.javaEnabled = true

       view = webViewHome

}

override func viewDidLoad() {
    super.viewDidLoad()

    let url = URL(string: "https://www.linopura.de/jtl.php")
    let request = URLRequest(url: url!)
    webViewHome.configuration.preferences.javaScriptEnabled = true
    //webViewHome.configuration.preferences.javaEnabled = true
    webViewHome.load(request)
}






@IBAction func GoBackHome(_ sender: Any) {


    if webViewHome.canGoBack {

        webViewHome.goBack()

    }

}





@IBAction func GoForwardHome(_ sender: Any) {


    if webViewHome.canGoForward {

        webViewHome.goForward()

    }

}

Есть идеи?

Заранее спасибо

1 Ответ

1 голос
/ 04 апреля 2020

Если вы хотите, чтобы логин пользователя оставался постоянным

В вашем MainV C, куда пользователь попадает после входа в систему, попробуйте это

func saveLoggedState() {
            let def = UserDefaults.standard
            def.set(true, forKey: "isLoggedin")
            def.synchronize()
    }

, вызовите saveLoggedState () в viewdidload

В вашем Appdelegate

let def = UserDefaults.standard
        let isLoggedin = def.bool(forKey: "isLoggedin")

        if isLoggedin {
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let initialViewController = storyboard.instantiateViewController(withIdentifier: "TabbarController")
            self.window?.rootViewController = initialViewController
        }
...