【WKWebView】初心者だけどWKWebViewのデータロード終了を待ってみた2【swift】

スポンサードリンク



sekibotbot.hatenablog.jp

前の記事で書いたコードをここに置いておきます。

つまづいたこと

まず関数名をそのままつかうこと

func なんちゃら(){
}

で関数を作ることができるのでwebViewがいっぱい出てくるのを避けるために名前を変えたりしていたがこれはダメ!!!情弱つらい
つまり、コピペせよということです

//webView1とかにしたら乙です
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
    /*ここにコード*/
    }

コード

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

f:id:sekibotbot:20160109041308p:plain

これでオッケー!