简体   繁体   English

在iOS Swift中登录后从wkwebview获取令牌

[英]get the token from wkwebview after login in ios swift

I am loading a url in wkwebview for login. 我正在wkwebview中加载一个URL进行登录。 After successful login it will redirect it to inner page, from there when click a button it will redirect to another page where token is generated. 成功登录后,它将重定向到内部页面,从那里单击按钮将重定向到另一个生成令牌的页面。 After token is generated how to push that to swift application. 生成令牌后,如何将其推送到快速应用程序。 I need to take that token for further use in my app. 我需要将该令牌用于我的应用中。 Don't know if it is a duplicate question but for the last 2 days I couldn't find any solution. 不知道这是一个重复的问题,但是在过去的两天里,我找不到任何解决方案。 please help with a complete solution 请帮助提供完整的解决方案

This is my code 这是我的代码

 override func loadView() 
{
        super.loadView()

        let url = URL(string: "urlString")
        let request = URLRequest(url:url!)

        let config = WKWebViewConfiguration()

        self.webView = WKWebView(frame: self.view.bounds, configuration: config)

        webView?.load(request)

        self.view.addSubview(webView!)


    }

How to proceed further to get the token 如何进一步进行以获取令牌

add message name in your user content controller in your config 在配置的用户内容控制器中添加消息名称

config.userContentController.add(self, name: "setToken")

add following extenstion in your view controller 在视图控制器中添加以下扩展

extension ViewController: WKScriptMessageHandler {
    func userContentController(_ userContentController: WKUserContentController,
                               didReceive message: WKScriptMessage) {

        if (message.name == "setToken"){
            if let token = message.body as? String{
                print(token)
            }

        }
        print("Received message from native: \(message)")
    }
}

pass your token from js 从js传递令牌

window.webkit.messageHandlers.setToken.postMessage(TOKEN_STRING);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM