既存の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】