pwa.inc.php

名称PWA対応プラグイン
ファイルpwa.inc.php
バージョン1.00
対象サーバーPukiWiki 1.5.3 / PHP 7.4 / UTF-8
対象ブラウザーFirefox, Chrome, Safari, Edge 各最新版
ライセンスGPLv3

サイトをPWA(プログレッシブウェブアプリ)に対応させるPukiWiki用プラグイン。

ウェブアプリマニフェストを提供し、サイトをアプリとしてスマートフォン等のホーム画面にインストールできるようにします。また、サービスワーカーによりリソースをキャッシュし、一度表示したページをオフラインでも閲覧できるようにします。HTTPS接続時のみ有効です。

インストール

pwa.inc.php
10.3KB | 2020-06-08

  1. pwa.inc.phpPukiWikipluginディレクトリに配置する。
  2. スキンファイルHTML<head></head>の間の適当な箇所に次のコードを挿入する*1
    <?php if (exist_plugin_convert('pwa')) echo do_plugin_convert('pwa'); // PWA plugin ?>

設定

コード内の下記の定数で動作を制御することができます。

定数名既定値意味
PLUGIN_PWA_MANIFEST文字列ウェブアプリマニフェストファイルのURL(例:'manifest.webmanifest')。空なら内蔵マニフェストを使用
PLUGIN_PWA_SERVICEWORKER文字列サービスワーカーファイルのURL(例:'sw.js')。空なら内蔵サービスワーカーを使用
PLUGIN_PWA_APPLETOUCHICON文字列180×180pxアプリアイコンPNG画像のURL(例:'apple-touch-icon.png')。空なら内蔵画像を使用
PLUGIN_PWA_ICON192文字列192×192pxアプリアイコンPNG画像のURL(例:'image/icon192.png')。空なら内蔵画像を使用
PLUGIN_PWA_ICON512文字列512×512pxアプリアイコンPNG画像のURL(例:'image/icon512.png')。空なら内蔵画像を使用
PLUGIN_PWA_DISABLED0 or 101なら本プラグインを無効化

詳細

キャッシュを司るサービスワーカーの挙動は用途によりさまざまですが、本プラグインに内蔵のものは次のように動作します。

  1. リソースをサーバーに要求する
    1. 正常に取得できたら、そのリソースをキャッシュに加える
    2. オフライン等の理由により取得できなければ、キャッシュ内のリソースを用いる
      ただし、キャッシュ内に該当リソースがなければエラーを表示する

ウィキサイトの性質上、常にサーバーから最新のリソースを取得する必要があるため、キャッシュは消極的にしか使われません。したがって、ロードの効率化・高速化には寄与しません。なお、ここでいうキャッシュとはサービスワーカー専用のそれであり、ブラウザーのキャッシュとは異なることにご注意ください。

default.ini.phpへの設定

本プラグインの定数設定(ファイル内の下記のような行)は、PukiWikiルートディレクトリにある標準設定ファイルdefault.ini.phpにも記述することができます。本プラグインの定数設定行をdefault.ini.phpの末尾にそのままコピーしてください。default.ini.php側の設定値が優先されます。

/////////////////////////////////////////////////
// ○○プラグイン設定(○○.inc.php)
if (!defined('PLUGIN_○○_×××)) define('PLUGIN_○○_×××', △);

設定をdefault.ini.phpに記述することで、プラグインをアップデート(ファイル上書き)するたびに値を書き直す必要がなくなります。また、設定がdefault.ini.phpに集中することで、運用中の設定管理も楽になります。

凡例

プラグインの引数は下記の書式で表現しています。

  • [] … 省略でき必要に応じて記述します
  • | … |で区切られた項目のうち1つを記述します
  • {} … 中カッコ内の引数は任意の順序で記述できます

*1 イカスキンにはあらかじめ挿入されています。