iOS13 で UIWebView が使えなくなる可能性があり、まだ使っていたアプリにて WKWebView への移行を行っていたのですが、Web ページがスマホ版の表示にならないという問題に遭遇しました。

Yahoo! のトップページを表示しても PC 版になってしまいます。。。

調査を進めていったところ、どうやら UserAgent がおかしいようでした。


Mobile が含まれていません。
(UserAgentの確認は 確認くん というサイトを利用させていただきました)

ただ、WKWebView は特にカスタマイズしておらず、もちろん customUserAgent も設定していません。
そして過去に自分が関わったプロジェクトを振り返っても、同様の事象は発生したことありませんでした。

今までと違うことといえば、ターゲット OS を iOS11 以上にしたので、WKWebView を コードではなくxib で作成したしたことくらいです。
(iOS10 までは WKWebView はコードでしか作成できませんでした。)

 

 

……これか?

 

まさかと思い、試しに WKWebView をコードで作成してみると、

let wkWebView = WKWebView(frame: view.frame)
view.addSubview(wkWebView)
wkWebView.load(URLRequest(url: URL(string: "https://yahoo.co.jp/")!))

何事も無かったかのように、スマホ版で表示されていました。

 

UserAgent もMobile が含まれていました。

 

つまり、

 

WKWebView は Storyboard(xib) で作成せずコードで作成する

 

方が良さそうですね。

でもこれだとせっかく Storyboard で作成できるようになった意味がないので、直して欲しいです。。。