iOS 9のUIWebViewがとても残念で困る

Filed under iOS SDK, トラブルシューティング
Tagged as ,

気になる挙動(バグ?)があちこちにあるiOS 9のUIWebViewについて、twitter等で見つけた情報をまとめていきます。(なにか分かれば追記していきます)

まとめ

分かりやすいように、最初に箇条書きをまとめておきます。

  1. iOS 9のUIWebViewでは基本的に、強制HTTPS通信!
  2. iOS 9のUIWebViewではHTTP通信したい場合はATSまわりを設定する
  3. CSSのチルダ(~)セレクタが使えなくなった
  4. UIWebViewのwindow.locationがページ遷移に併せて変わらなくなった
  5. htmlのmetaタグのviewportのcontentには”devie-width”を入れるといいらしい

(2015/09/22 更新)

ATS(App Transport Security)関係

『iOS 9のUIWebViewでは、HTTPS通信が基本となる』というのが、Apple Transport Security、通称「ATS」というものです。
事前に開発者には通告されていたし、下記のようなまとまった情報もあるので、必見です。
■[iOS 9] iOS 9 で追加された App Transport Security の概要 | Developers.IO

ということですが、
「まぁ、全部OKにするオプションがある」ということを知っていたので、それで当面はいいだろう、と思っていました。
が、実際にiOS9で使ってみると、なんかおかしい!という感じが出てきたので、調べてみた、というのが今回のブログエントリです。
主に、twitterで情報収集してみました。

UIWebView関係


そうなんです!
実際に使ってみて驚いたのがこれ。。


私も、例外とかクラッシュじゃなく変な止まり方に遭遇しています。。
そう、jsからUIWebView経由でネイティブのUIが動くときが、何か怪しいのです!


Ionicは、Cordova+Angularのフレームワークらしいです(知りませんでした)が、Angular関係でも何か問題あるようですね。


あ、これか!
【iOS 9のUIWebView】では、【CSSのチルダ(~)セレクタ】が使えなくなった、ということらしいですね!!!

↓こちらの記事がまとまっているようです。
■Preparing for iOS 9 | The Official Ionic Blog
前述したIonicの開発者ブログですが、これを読むとさらに闇は深いことが判明!

同ブログの別エントリで詳しく書かれていますが、なんと、UIWebViewのwindow.locationがページ遷移に併せて変わらなくなった、という問題もあるようです!
■iOS 9 Potential Breaking Change | The Official Ionic Blog

その他の問題

AppleのDeveloper Forumからメモ。
HTMLのレイアウトの問題らしい。
■UIWebView layout in iOS 9 | Apple Developer Forums

<meta name="viewport" content="initial-scale = 1.0”>
↑じゃなくて、↓をのように、device-widthをいれるといいよ。
<meta name="viewport" content="width = device-width, initial-scale = 1.0”>

これは軽微な感じですね。

というわけで、

拙訳:『UIWebViewは壊れてるし、WKWebViewは制限ばっかだし、WebViewControler(訳者注:SFSafariViewControllerのこと?)はラッパー作りたい人には向かないし、つんだ。』

同感。

いや、そんなこと言ってないでやっぱり、WKWebViewに置き換える作業しなきゃ、ですよ>自分


Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)