to topto bottom

モバイルファースト時代のマルチデバイス対応を確実・簡単に

iOS6のSafari・Webkit周りの変更点を訳してみた

iOS6

こんにちは。x-fitチームエバンジェリストの渡辺です。
 
iPhone5も発表になり、これから対応を本格化させるという方々もたくさんいらっしゃると思います(私たちもです!)。iOSについてもバージョン6が9月19日から配信開始とアナウンスされました。
Web周りの部分について、どのような変更が入っているのか、9to5mac.comのこの記事で紹介されていましたので、WebkitとSafariについてのパラグラフだけ訳してみました。本文中の強調は、私がつけたもので、原文にはありませんのでご了承ください。もし誤訳などありましたら、@xfit_jp宛にツッコミをお待ちしております。
 

SafariとWebkitについて

  • iOSのWebkitで、http://www.w3.org/TR/animation-timing/ に記述されている、JavascriptのrequestAnimationFrameメソッド、cancelAnimationFrameメソッドがサポートされます。
    • この仕様はまだドラフトであるため、webkitの接頭辞が必要です。したがって、コールの記述は、window.webkitRequestAnimationFrameと、window.webkitCancelAnimationFrameになります。
  • デフォルトでのアプリケーションキャッシュ容量が5MBから25MBに拡大されました。
  • iPhone3GSと第4世代iPodTouchを除いて、JPEGのサブサンプリングのしきい値が、2メガピクセルから5メガピクセルに拡大されました。
  • 以前は無効化されていた、<input type="file">のフォームタグがサポートされます。ユーザは、ライブラリから、写真やビデオをアップロードできるようになります。
  • OSXに搭載のSafari6.0では、開発ツールとしてWeb Inspectorが利用できるようになります。Web Inspectorにはシミュレータが付属しています。開発者は、XCode上でSafariやUIWebViewクラスのデバッグが可能になります。これは、Safariのデバッグコンソールバナーを置き換えるものです。
  • iOS6以降、UIWebViewオブジェクトからWebデータ(SQL Web StorageとLocalStorage)をディレクトリへバックアップできるようになります。有効にするには、アプリの中で、WebKitStoreWebDataForBackupキーをYESに設定してください。この機能はリロードできないWebコンテンツ限って利用すべきものです。もしUIWebViewがリンクから別のコンテンツを開くのであれば、このキーはNOに設定するべきです。設定を変えると、既存のデータは保持されなくなります。
  • iOS6以降、SafariはRSS/ATOMで使われていたfeed:スキーマを登録しません。アプリはこれまでのスキーマタイプを見ることはできますが、登録はURLスキーマで行うことを推奨します。
  • Webkitは、要素に対するハードウェアアクセラレーションを有効にするために、 -webkit-transform: preserve-3dオプションを設定しても、有効にはなりません。ハードウェアアクセラレーションを利用するために、このオプションは記述しないでください。
  • 実験的なCSS3のプロパティであったFlexboxはサポートされなくなります。これまでの-webkit-flexboxや-webkit-inline-flexboxというプロパティは、-webkit-box と -webkit-inline-boxに書き換えてください。
  • iOS6では、http://www.youtube.com/watch?v=oHg5SJYRHA0のような形式の、YouTube埋め込み型URLは機能しません。このURLは、YouTubeサイトでみるためのURLであり、Webページに埋め込むためのURLではありません。代わりに、正しい形式については、https://developers.google.com/youtube/player_parameters にて説明されています。
  • iOS6では、UIWebViewクラスに keyboardDisplayRequiresUserActionプロパティが追加されました。このプロパティは、デフォルトがYESで設定され、YESの場合、フォーム要素に、focus()メソッドをコールしても、キーボードは自動的には出現しないという意味になります。NOに設定すれば、フォーム要素にフォーカスすると、自動的にキーボードが表示されるようになります。
  • iOS6では、Webアプリでフォーム要素に対して、focus()メソッドをコールすればフォーカスされるようになります。

個人的に大きな変更だなと思うのはファイルアップロードのサポート、UIWebViewのkeyboardDisplayRequiresUserActionプロパティの追加でしょうか。また上記にはありませんが、iPhone5の発表時に、iPhoneのSafariがフルスクリーンモードを搭載するという話も発表されました。いろいろと考えなければならないことが増えそうですね。

 

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