koogawa blog

iOS、Android、foursquareに関する話題

【StackOverflow活動日記】WKWebView reload() がページをリフレッシュしてくれない件

完全に思いつきだけど、Stackoverflow活動 のログをなるべく残していきたいと思う。

Stackoverflow で何か回答してみたいけど、どんな風に回答したらよいかわからない人の参考になれば幸いである。

今回解決した質問はこちら。

stackoverflow.com

the first time load web page fail at offline. then I connect network call reload() to refresh current page, but it is not work, the WKNavigationDelegate can't get any callback.

初回ロード時にオフラインで失敗した場合、再びオンラインになった際に reload() を呼んでもページをリフレッシュしてくれないよ!という内容。

実際にコードを書いて試したところ、確かに reload() 呼んでもウンともスンとも言わない。

調べてみると、WKWebViewurl プロパティ(現在表示しているページのURLがセットされる)には初回ロード時に失敗すると nil がセットされることがわかった。

reload() メソッドはこのURLを再読み込みしようとするため、何度実行してもリフレッシュされなかったわけだ。この仕様は今まで知らなかったので勉強になった。

というわけで、ページをリフレッシュする際は url プロパティをチェックするといいよ、といった内容をサンプルコード付きで回答した。

後日、私の回答が承認され、reputation は 2350 になった。

f:id:koogawa:20170818135040p:plain

この調子で 2500 目指すぞ💪