登录ios swift后从wkwebview获取令牌

时间:2018-05-20 08:33:28

标签: ios swift wkwebview

我正在wkwebview中加载一个用于登录的URL。成功登录后,它会将其重定向到内页,当点击按钮时,它将重定向到另一个生成令牌的页面。生成令牌后如何将其推送到快速应用程序。我需要在我的应用程序中使用该令牌以进一步使用。不知道这是一个重复的问题,但在过去的两天里,我找不到任何解决方案。请帮助提供完整的解决方案

这是我的代码

 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!)


    }

如何进一步获取令牌

1 个答案:

答案 0 :(得分:1)

在配置

中的用户内容控制器中添加消息名称
config.userContentController.add(self, name: "setToken")

在视图控制器中添加以下扩展名

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)")
    }
}

从js

传递您的令牌
window.webkit.messageHandlers.setToken.postMessage(TOKEN_STRING);