登录 ios swift 后从 wkwebview 获取令牌
Posted
技术标签:
【中文标题】登录 ios swift 后从 wkwebview 获取令牌【英文标题】:get the token from wkwebview after login in ios swift 【发布时间】:2018-05-20 08:33:28 【问题描述】:我正在 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】:在配置中的用户内容控制器中添加消息名称
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);
【讨论】:
在 javascript 中传递 authToken 是否是最佳实践且安全?以上是关于登录 ios swift 后从 wkwebview 获取令牌的主要内容,如果未能解决你的问题,请参考以下文章
如何在IOS APP中通过swift/javascript登录网站
swift 笔记:iOS与JavaScript的交互(三):WKWebView 1.新建WKWebView加载本地,远程页面
在 WKWebView (iOS, Swift) 中使用本地 Javascript 源加载本地 HTML
iOS Swift5.0 WKWebView使用JS与Swift交互
swift [初学者来自iOS中WKWebView的简单浏览器] Chp6的青铜挑战程序设计查看Big Nerd Ranch #tags:swift3,ios,UIView,WKWebview