自宅メディアを活用するためにEmbyを始動したが、設定に不具合があってPWAとして使えなかったので、修正メモ。@ CentOS 7
とりあえず動くようにしただけなので、仕様とか原理とかはまた今度詰める。
配信ファイルの場所
/opt/emby-server/system/dashboard-ui
manifest.json
Chromeの開発者ツールのエラーメッセージによると、related_applications
の要素にはurl
またはid
が必須らしい。
"related_applications": [
{
"platform": "android",
- "location": "https://play.google.com/store/apps/details?id=com.mb.android"
+ "url": "https://play.google.com/store/apps/details?id=com.mb.android"
},
{
"platform": "ios",
- "location": "https://itunes.apple.com/us/app/emby/id992180193?ls=1&mt=8"
+ "url": "https://itunes.apple.com/us/app/emby/id992180193?ls=1&mt=8"
},
{
"platform": "web",
+ "id": "emby"
}
],
serviceworker
サービスワーカーの箇所でdoes not work offline
とエラーメッセージが出ていた。
インストール時の処理としてself.addEventListener('fetch', function(event) {});
と書いてやればいいっぽい。
参考:【PWA】「ホーム画面に追加」の「Site cannot be installed: the page does not work offline」エラー対策
serviceworker.js
を見ると、bower_components/emby-webcomponents/serviceworker/
にあるnotifications.js
とsync.js
を読み込んでいるよう。
notifications.js
はいろいろ書いてあって面倒そうだったから、sync.js
に追記しよう。
self.addEventListener("sync",function(event){"use strict";event.tag});
+ self.addEventListener('fetch', function(event) {});
以上の修正でエラーが消え、無事PWAとして端末にインストールできた。
めでたしめでたし。