業務自動化とプログラミングのためのTips

自動化.work

iOS

アプリをiPhone Xに対応させる(WebView編)

投稿日:

よこねっとのアプリであるFlash PhotosはAboutの情報の表示にUIWebViewを使用しています。
UIWebViewを使用してHTMLを表示している理由は、バージョンアップ等によって内容を書き変える際にコードをいじる必要がなく、HTMLファイルのみを編集すれば良いからです。
しかし、iPhone Xのシミュレータで動かしたところ、セーフエリア外の部分はグレーになっており、UIWebViewが全画面に表示されないことがわかりました。

縦位置だと下側までUIWebViewが伸びていません。

横表示だとSensor Housing周辺にViewがありません。

このような表示でも使用上は問題はありませんが、見た目が悪く、iPhone XのSafariだとViewが全画面を使用しているので、Flash PhotosのAbout画面も全画面を使用してHTMLを表示するように変更します。

UIWebViewからWKWebViewへの変更

表示がおかしくなる原因はUIWebViewを使用しているためです。UIWebViewはiOS8以降ではWKWebViewを使うように推奨されており、Xcode9では一応使えますがdeprecatedという扱いになっています。

Note
In apps that run in iOS 8 and later, use the WKWebView class instead of using UIWebView. Additionally, consider setting the WKPreferences property javaScriptEnabled to false if you render files that are not supposed to run JavaScript.

UIWebView - UIKit | Apple Developer Documentation
https://developer.apple.com/documentation/uikit/uiwebview

WKWebViewのメソッドは似ていますが、WebKitのインポートと、HTML上のリンクのクリック時の挙動を制御するためのコード記述を詳細に行わなければならないという点が異なっています。

上記コードに変更した後の挙動の動画です。iPhoneXの全画面を使用してHTMLが表示されています。


-iOS
-,

Copyright© 自動化.work , 2019 All Rights Reserved.