BLOG

Blitz Gateスタッフブログ

BLOG

WKWebViewでLocalStorageが使えない場合+α

書いた人:

iOS , iPhone , Swift , 技術  

WKWebView

どうも、CTOのゆんゆんです。

 

このところ忙しくてブログが滞っていました。
だめですね、きちんと習慣にしなくては・・・。

 

さて、今回はiPhoneのWKWebViewのお話です。

 

WKWebViewとは、iOS8から使用可能になった、UIWebViewに代わる新しいUIです。
様々な情報がネット上で出ていますが、なかなかピンポイントな情報を掲載しているサイトは少ないです。

 

そこで、今回は弊社で開発中に起きた問題を取り上げてみようと思います。

 

それはタイトルの通り「WKWebViewでLocalStorageが使用できない」というものです。
ネット上の情報を使い、WKWebViewを作成しているときにUI/UX班から上がってきた内容でした。
しかし、調べても全然情報は出てこず・・・。

 

最終的に見つけた回答の一つは下記のとおりです。

 

// WebViewの設定を作成
let webViewConf  = WKWebViewConfiguration()

// LocalStorageを許可
webViewConf.websiteDataStore = WKWebsiteDataStore.defaultDataStore()


webViewConf.userContentController = webUserContentController

 

この「WKWebViewConfiguration」の「websiteDataStore 」を設定してあげることで、LocalStorageが使用できるようになります。
このパラメータに「WKWebsiteDataStore.nonPersistentDataStore()」を設定すると、いわゆるシークレットモードで動作します。

 

また、JavaScriptを使用したい場合は下記のようになります。

 

let webViewConf  = WKWebViewConfiguration()
webViewConf.preferences.javaScriptEnabled = true

 

いかがですか?
JavaScriptと連携したハイブリッドアプリなどを開発する際の参考になれば幸いです。

 

ではではー。

  • このエントリーをはてなブックマークに追加