PWA for WordPressを試してみた


ABC2018AでPWAのカンファレンスを聞いて(途中で疲れていたせいか寝てしまったけどw)PWA for WordPressについてお話があったので、お試しで導入してみた。
PWA for WordPressはルートディレクトリにWordpressが配置されていることが前提の為、僕のWordpressではうまく動かない!

まずは、PWA for WordPressがmanifestとserviceWorkerのjsをどこに保存しているか確認。
blogディレクトリ直下にある。
Chromeでエラーを確認し、ルートディレクトリにコピー。
とりあえず、なんかインストールできた!
できたけど、ブログじゃなくて、ルートのindex.htmlが出てくる・・・

そこで、カンファレンスで登壇していた方に相談。

以下の2つの変更で、blogディレクトリのserviceWorkerのjsを読み込むようになりました。

プラグインのpublic/class-pwa4wp-public.php の85行目を以下のように変更
echo "<script>if ('serviceWorker' in navigator) {navigator.serviceWorker.register('/" . PWA4WP_SERVICEWORKER_FILE . "');}</script>";

echo "<script>if ('serviceWorker' in navigator) {navigator.serviceWorker.register('/" . PWA4WP_SERVICEWORKER_FILE . "',{scope:'/blog/'});}</script>";

Manifest設定のstart_urlとscopeに/blog/を設定

ただし、これだけだとblogディレクトリに保存されるManifestが読み込まれないため、以下を変更を行う
echo '<link rel="manifest" href="/' . PWA4WP_MANIFEST_FILE . '" />';

echo '<link rel="manifest" href="/blog/' . PWA4WP_MANIFEST_FILE . '" />';

ここまでの変更をして、Androidで再読み込み・・・うまくいかない
キャッシュをクリアしてもうまくいかない。
Windows10のChromeではインストールできた!
ちなみに、WindowsのChromeでPWAを使う場合、Chromeでchrome:flagsをアドレスバーに入力して、PWA関係の設定をEnableにすればOK

なぜ、Androidがうまいかないのか・・・謎である。
もしかすると、HTML内にhttpのリンクとかあるせいなのか・・・?

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)