Le_*_*_ed 4 autofill swift wkwebview ios9 swift2
我是斯威夫特世界的新人.我有一个大问题......我试图编写一个只有一个WKWebView的应用程序.它就像一个Web浏览器.应用程序应该能够从对象或列表中自动填充LogIn字段.但出于测试原因,我已将登录数据放入变量中.
class ViewController: UIViewController , WKNavigationDelegate{
// Zugänge
let pw : String = "test"
let bn : String = "test@test.com"
// Adresse
let adresse : String = "https://www.facebook.com"
var webView: WKWebView!
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
title = webView.title
}
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: adresse)!
webView.loadRequest(NSURLRequest(URL: url))
webView.allowsBackForwardNavigationGestures = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
Run Code Online (Sandbox Code Playgroud)
}
我认为这是可能的JS,但我不知道如何.
有什么方法可以解决我的问题吗?
这实际上可以使用1Password
添加扩展文件:
然后使用桥接头包含它们:
#import "OnePasswordExtension.h"
Run Code Online (Sandbox Code Playgroud)
最后,您可以在项目中使用以下内容
@IBAction func onePassword_btn(sender: AnyObject) {
OnePasswordExtension.sharedExtension().fillLoginIntoWebView(self.webView, forViewController: self, sender: sender, completion: {(Bool) in
// error handling
})
}
Run Code Online (Sandbox Code Playgroud)
这是1Password 的链接
这是参考
或者你可以这样试试
func webViewDidFinishLoad(webView: UIWebView!) {
let savedUsername = NSUserDefaults.standardUserDefaults().stringForKey("USERNAME")
let savedPassword = NSUserDefaults.standardUserDefaults().stringForKey("PASSWORD")
if savedUsername == nil || savedPassword == nil {return}
if ( countElements(savedUsername!) != 0 && countElements(savedPassword!) != 0) {
let loadUsernameJS = "var inputFields = document.querySelectorAll(\"input[name='username']\"); \\ for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = \'\(savedUsername)\';}"
let loadPasswordJS = "var inputFields = document.querySelectorAll(\"input[name='password']\"); \\ for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = \'\(savedPassword)\';}"
self.webview.stringByEvaluatingJavaScriptFromString(loadUsernameJS)
self.webview.stringByEvaluatingJavaScriptFromString(loadPasswordJS)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |