質問: URLRequest(url: myURL!) webView.load(myRequest) //ソースを表示 webView.evaluateJavaScript("document.documentElement.innerHTML", completionHandler: { (html: Any?, error: Error?) in print(html)}) } } ``` ### 試したこと (1)読み込んだwebページが複雑である可能性を考え、徐々に簡易なwebページへ変えていき、最終的にはテキストのみのページを読み込みましたが、変化はありませんでした。 (2)macのsafariで同じjavascriptを用いたところ、意図した通りのソースを表示してくれたので、コンソールに表示できる文字数に制限がある可能性を考えましたが、そのような情報は見つかりませんでした。 ### 補足情報(FW/ツールのバージョンなど) Xcode Version 10.1 <Deployment info> Deployment Target:12.1 Devices:Universal
回答: 自分も今同じことをやってて、解決策に遭遇しました。 ついでにこのページにもたどり着いて、まだ答えがなかったので記載させていただきます。 https://stackoverflow.com/questions/34751860/get-html-from-wkwebview-in-swift に書いてありますが、 If you wait until the page has loaded you can use: の通り、読み込みを待つ必要があるみたいです。 試しにNavigationBarにボタンを表示し、押したタイミングで表示に切り替えてみたら、 普通に問題なく取得できましたよ。 viewdidAppearでもダメでした。~~GCDを使う必要がありそうですね。~~ **>fuzzbalさん** すみません、良く調べてなかったですが、 もちろんdelegateありました。 https://qiita.com/shunyooo/items/d03a714af4dadd0727a6 みていただければ、ですが、 WKNavigationDelegateを設定し、 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {} 試してないですが、ここで行えば大丈夫だと思います。 ちなみに、下記に表示するコード含まれてます。 URL等変えれば流用できると思います、参考にどうぞ。