MonacaアプリでInAppBrowserを使う機会は多いですが、標準のまま実行しているとiOSの審査で落ちる可能性があります。今回はその回避策について紹介します。
解決策
まずは解決策から。 usewkwebview=yes
というオプションを追加します。
var url = 'https://mbaas.nifcloud.com/'; var options = "location=no,usewkwebview=yes,clearsessioncache=yes"; var ref = cordova.InAppBrowser.open(url, target, options); };
usewkwebview=yes
があると、UIWebViewではなく、WKWebViewを使うようになります。
WKWebViewとは
WKWebViewはUIWebView代替のWebブラウザ機能になります。従来のUIWebViewでは、ネットワーク通信を改変できるという機能がありましたが、これは一部においてセキュリティ上のリスクがありました。また、JavaScriptの実行速度や安定性においてもWKWebViewは改善されています。
iOS8.0からWKWebViewの利用が推奨されています。そしてiOS 12.0からUIWebViewは廃止候補となっています。Monacaアプリにおいては usewkwebview=yes
を利用していれば問題ありません。
リッチプッシュについて
ニフクラ mobile backendではリッチプッシュの機能においてアプリ内ブラウザを提供しています。こちらも元々UIWebViewを使っていましたが、現在はすでにWKWebViewへ切り替え済みです。
issue #196: migrate UIWebView to WKWebView · NIFCLOUD-mbaas/ncmb_ios@403aeb6
iOS SDK 3.0.3より適用されていますので、それ以上のバージョンであれば問題ありません。
Monaca / Unity SDKについて
Monacaのプッシュ通知プラグイン、Unity SDKについてもiOS SDKを利用しています。こちらも最新版のプラグインやSDKを利用してもらえればWKWebViewが適用されます。
まとめ
UIWebViewはすでにiOSの審査で弾かれる要因になっています。早めにアップデート、コード修正をお願いします。