【WKWebView】初心者だけどWKWebViewのデータロード終了を待ってみた2【swift】
つまづいたこと
まず関数名をそのままつかうこと
func なんちゃら(){ }
で関数を作ることができるのでwebViewがいっぱい出てくるのを避けるために名前を変えたりしていたがこれはダメ!!!情弱つらい
つまり、コピペせよということです
//webView1とかにしたら乙です func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) { /*ここにコード*/ }
初心者がとったいろんな対策などはこちら
【swiftアプリ開発】WKWebViewのデータロード終了を待つ1 - sekibotbotのブログ
swift カテゴリーの記事一覧 - sekibotbotのブログ
iphoneアプリ カテゴリーの記事一覧 - sekibotbotのブログ
↑スポンサードリンク
コード
import UIKit import WebKit import JavaScriptCore class TestViewController: UIViewController, WKNavigationDelegate {//WKNavigationDelegateを追加 var sekiwebView: WKWebView! var sekiwebNav: WKNavigation! var url = NSURL(string: "https://www.google.co.jp") override func viewDidLoad() { super.viewDidLoad() //webViewの準備 let deviceBound : CGRect = UIScreen.mainScreen().bounds sekiwebView = WKWebView(frame: self.view.bounds) sekiwebView.frame = CGRectMake(0, 0, deviceBound.size.width, deviceBound.size.height) sekiwebView.navigationDelegate = self //これを追加 //表示するページの準備 let request = NSURLRequest(URL: url!) //ページの表示 sekiwebView.loadRequest(request) webView(sekiwebView, didFinishNavigation: sekiwebNav)//これを追加 //Viewを表示 self.view.addSubview(sekiwebView) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {//これを追加 //入力ボックスをさがすJavascript webView.evaluateJavaScript("document.getElementById('lst-ib').value=\"ああああ\"", completionHandler: nil) print("finish") } }
これでオッケー!