既存のWebサイトをそのままChromeアプリ化することが可能なので Packaged Apps を作るのよりも更に簡単である。
Packaged Apps同様にChrome Web Storeに公開してアプリの知名度を高めることもできる。
すでにWebで公開されているアプリがあるなら、Hosted App化は簡単である。
1) manifest.jsonを作成
2) 128x128のアイコンを作成
この2ステップだけ。
以下はmanifest.jsonの例。Gmail Apps?のmanifest.jsonである。
{ "name": "Google Mail", "description": "Read your gmail", "version": "1", "app": { "urls": [ "*://mail.google.com/mail/", "*://www.google.com/mail/" ], "launch": { "web_url": "http://mail.google.com/mail/" } }, "icons": { "128": "icon_128.png" }, "permissions": [ "unlimitedStorage", "notifications" ] }
重要な箇所だけを説明すると、
app.urlsはアプリが使うURL。
app.launch.web_url はWebアプリのURL。
iconsでアイコン画像ファイルを指定。
permissionsはアプリの権限周り。
アプリ自体は最低限これだけで完成。
ブラウザにChromeを使っているのなら、[ツール]>[拡張機能]画面を開き、デベロッパーモードをONにして、「パッケージ化されていない拡張機能を読み込む」ボタンを押して、上のアプリのプロジェクトフォルダを指定すれば、Chromeアプリとしてインストールされる。
あとはアプリを多言語化したり、Chrome Web Storeに公開したりご自由に。
多言語化
Hosted Appsには簡単に多言語化するための仕組みが用意されている。まずは下のプロジェクトフォルダ構成を見て欲しい。
manifest.json
128.png
_locales
/ja
messages.json
/en
messages.json
このように、まずは_localesフォルダを作って、そこにISO-639(例えばenとかjaとか)で命名されたロケールフォルダを作り、それぞれにmessages.jsonを作る。messages.jsonには言語ごとのメッセージリソースを記入する。
manifest.json
{ "name": "__MSG_name__", "description": "__MSG_description__", "default_locale": "ja", "version": "0.1", "icons": { "128": "128.png" }, "app": { "urls": [ "http://YOUR_WEB_SITE/" ], "launch": { "web_url": "http://YOUR_WEB_SITE/" } }, "permissions": [], "manifest_version": 2 }
__MSG_*__ な部分がmessages.jsonの文字列に置き換わる。
_locales/ja/messages.json
{ "name": { "message": "マイアプリ" }, "description": { "message": "マイアプリの説明。" } }
_locales/en/messages.json
{ "name": { "message": "MyApp" }, "description": { "message": "This is my application." } }
アプリの公開
まずChrome Web Storeでデベロッパー登録する必要がある。現時点では登録に5ドル(一回きり)掛かる。支払いにはGoogleWalletが利用されるので事前に登録しておく。最初の認証に200円ほど余計に請求されたが、このお金は後で返金された。口座にぎりぎりのお金(200円+5ドル≒約700円未満)しか入っていない場合は支払いに失敗するので注意。
登録が完了したらデベロッパーダッシュボードからアプリをアップロード、登録することが出来る。 アプリ登録では、日本語用の紹介ページだけでなく、他の言語での紹介ページも作ることが出来る。ただしそれぞれの言語での登録作業が発生する。
参考
Hosted Apps - Installable Web Apps - Google Developers
関連エントリ
【Chrome】Packaged Apps アプリをHelloWorld【Google】