実装されている仕様
画面表示状態 (Page Visivility) の仕様により、開発者はアプリケーションが表示中であるかを検出可能になり、動作や計算資源消費を最適化できるようになります。
ユーザはどこにでもモバイルデバイスを持ち歩くようになり、リマインダや、メッセージなどのイベント通知などに利用するようになりました。Web 通知 (Web Notifications) 仕様によりウェブ環境でも機能を利用可能になりました。
仕様化が進行中の仕様
ゲームは比較的長い時間にわたるユーザによる利用を想定しがちです。Screen Wake Lock API を利用することで開発者が画面表示状態が必要であることを示すことが可能になり、バッテリを温存するために画面が消されることがないようにできます。
パッケージ化されているかどうかにかかわらず、通常利用しているアプリケーションのリスト中からアプリケーションを探す際にはさまざまなメタデータ (名前、アイコン) を利用します。ウェブアプリケーションマニフェスト (Web App Manifest) によりそれらのメタデータを一つの JSON ファイルで指定できます。
Service Workers 仕様によりバックグラウンドで動作し続けるアプリケーションを作成することが可能になり、オフライン動作もできるようになりました。
Service Workers によりウェブアプリケーションはオフラインや細い回線状況でも気にせず動作できるようになりましたが、それ以外にもブラウザウィンドウで開かれていない間やブラウザ自体が動作していない間にもウェブアプリケーションを動作させることが可能になりました。これにより、ウェブアプリケーションをバックグラウンドで動作させ、外部からのイベントに反応させることができるようになります。
Push API によりリモート通知を受け取ることができるようになり、受信時に起動させることが可能になります。これまで長い間、ネイティブアプリケーションではそういった通知を利用することでユーザ体験を向上させています。
ウェブバックグラウンド同期 (Web Background Synchronization) 仕様により Service Worker を利用してウェブアプリケーションはネットワーク通信をバックグラウンドで行うことでデータ更新を途切れなく行えるようになり、またモバイルデバイスでよく発生する安定しない通信環境でも対応できるようになります。
バックグラウンド動作に加え、位置情報取得 (Geolocation Sensor) 仕様により、ウェブアプリケーションでもデバイスが特定の地理的領域に入った場合に起動する動作が可能になります。これは geofencing としても知られています。
調査中の項目
ウェブパッケージ (Web Packaging) はウェブサイトやアプリケーションをパッケージ化する形式についてまとめています。
特にモバイルデバイスで動作しているアプリケーションは、動作中からアイドル、停止、中止、破棄、終了などのステートをとることがあります。それらのステート間の遷移はオペレーティングシステムによって開始され、ウェブアプリケーションからでは判断できません。ページライフサイクル (Page Lifecycle) の提案はアプリケーションのステート遷移を取得し、遷移を戻したりネットワークの有効・無効を切り替えたりなどの動作ができるようにするものです。
機能 | 仕様・グループ | 実装意向の状況Select browsers… |
---|---|---|
Packing | Web Packaging Web Platform Incubator Community Group | |
State transition | Page Lifecycle Web Platform Incubator Community Group |
中止された項目
- アプリケーションキャッシュ (Application caches)
- アプリケーションキャッシュ (application cache) の機構はウェブアプリケーションがオフラインでも、ブラウザがキャッシュしているマニフェストの定義により読み込めるようにするため HTML5 に導入されました。この機能はセキュリティー問題を惹起し、また開発者がどの程度キャッシュされるかを制御できるかに非常に依存していました。このため、HTML 5.1 では廃止され HTML 5.2 で削除され、より高機能な Service Workers 仕様に替わりました。
- タスクスケジュール (Task Scheduling)
- タスクスケジューラー (Task Scheduler) API はウェブアプリケーションに紐づいたサービスワーカー経由で特定の時刻にタスクを起動するために考案されました。この仕様は現在は閉じられた System Applications Working Group で検討されており、結果的に見送りとなりました。
- Geofencing API
- Geofencing API は特定の地理的領域にデバイスが入ったときにウェブアプリケーションを起動するために検討されました。API によるトリガーに必要な権限についてユーザのプライバシー問題との兼ね合いについてよい方策が見つからなかったことにより、今では廃止されています。バックグラウンド動作が可能になったことにより、位置情報取得の仕様を利用することで近いことが実現可能になっています。
- バックグラウンド動作予約 (Background execution budget)
- ユーザエージェントはウェブアプリケーションがバックグラウンドで動作し常にユーザが操作できる状態にしておくことを制限することがあります。Web Budget API はアプリケーションが消費量を見積り、動作をそのまま行うかどうかの判断をするためのバックグラウンド動作を停止する条件を提示する機構を提案していました。この提案は支持がなかったため廃止されています。