読者です 読者をやめる 読者になる 読者になる

ビギグラマーのノート

自作PCやプログラミングについてのブログです。

【Swift3】WKwebViewでWebページのアイコンを自動取得

 作成意図

 Webページにはappleバイス用のアイコンが設定されている場合があり、これが主にブックマークを使用する際のアイコン画像となります。現在このアイコンを取得する機能はWKWebViewに実装されておらず、自力で導入する必要があります。しかし、毎回これを書いていては骨が折れるので、アイコンを取得できるカスタムWKWebViewを作成しました。

ダウンロード

Get url where web page icon. · GitHub

 使い方

 CustomWKWebView.swiftとscript.jsをアプリケーションのディレクトリに置き、xcodeに登録してください。

 webView.getIconImage() を実行すると現在表示中のページのアイコンの取得を試みます。 func urlDidGet(customWebView: , arrURL:) がアイコンの取得時に呼び出されます。以下がサンプルの使い方になります。

 ライセンス

 このカスタムは営利非営利のどちらでも使用可能です。ただし二次配布は許可しません。

問題点

 ATSの設定によりますが、URLSessionのdownloadTaskがブロックされる場合あります。ATSのAllow Arbitrary Loads in Web ContentのYES設定では現在のところWKwebviewしかhttp通信を認められていないので。URLsession用に個別で通信を許可する等の対処が必要になります。

改造等

 現在はapple用にタグが設置されたアイコンしか読み込みませんが、icon等の一般的なものも読み込むようにするとより多くの場所でアイコンを取得できます。その場合複数の画像が上がってくることにりますが...