Webサイトを最も簡単にアプリ化する方法 | OJapp PWA Code

Webサイトを最も簡単にアプリ化する方法を紹介。無料の1P1A・1S1AコードをHTMLに1行追加するだけで、manifest.jsonを作成せずWeb App Manifestを動的生成し、PWAとしてホーム画面に追加できる仕組みを解説します。

目次

WebサイトをPWAとしてホーム画面に追加できるようにしたい。

でも、そのために manifest.json を作って、アイコンを用意して、各種設定を書いて……となると、正直ちょっと面倒ですよね。

アッピン
これが簡単にできて、登録不要、無料です

OJappでは、HTMLにJavaScriptを1行追加するだけでWeb App Manifestを動的に生成できます。

サイト全体を1つのアプリにする

サイト全体を1つのアプリとしてホーム画面へ追加したい場合は、**1S1A(One Site. One App.)**を使います。

HTMLの <head> にこれを追加します。

HTML
<script src="https://ojapp.app/js/ojapp_1s1a.js"></script>

これだけです。

サイト内のどのページからホーム画面へ追加しても、サイトトップを起点とする1つのWebアプリとして扱われます。

1S1Aでは内部的に、サイトのOriginから、

Text
https://example.com/

を作り、このURLをManifestの id、start_url、scope に設定しています。

つまり、

Text
One Site. One App.

という構成です。

ページごとに別のアプリにする

商品ページ、記事、プロフィール、予約ページなどを、それぞれ別のアプリとしてホーム画面へ追加したい場合は、**1P1A(One Page. One App.)**を使います。

HTML
<script src="https://ojapp.app/js/ojapp_1p1a.js"></script>

これも、置くだけです。

1P1Aでは現在開いているページのURLから、

JavaScript
window.location.origin + window.location.pathname

を取得し、そのページ専用のManifestを生成します。

たとえば、

Text
https://example.com/product/wallet/
https://example.com/product/bag/
https://example.com/product/shoes/

という3つの商品ページがあれば、それぞれを別のホーム画面アイコンとして追加できる構造になります。

Text
商品A → アプリA
商品B → アプリB
商品C → アプリC

これが One Page. One App. です。

1S1Aと1P1Aの違い

違いはかなりシンプルです。

1S1Aは、

Text
サイト = 1アプリ

1P1Aは、

Text
ページ = 1アプリ

です。

普通の企業サイトやサービスサイトなど、サイトそのものを1つのアプリとして扱いたい場合は1S1A。

ECの商品ページ、ブログ記事、プロフィール、予約ページなど、「このページをホーム画面に残してほしい」という使い方なら1P1Aが向いています。

どちらも使っているのは同じWeb App Manifestです。

違うのは、「何を1つのアプリとして定義するか」だけです。

manifest.jsonを作らなくてもいい

一般的なPWAでは、HTMLから次のようなファイルを読み込みます。

HTML
<link rel="manifest" href="/manifest.json">

そしてサーバーには、

Text
/manifest.json

というファイルを用意します。

OJappでは、このManifestをJavaScriptがブラウザ上で動的に生成します。

大まかな流れはこうです。

Text
Webページを開く
↓
OJappのJavaScriptを実行
↓
URL・タイトル・アイコンを取得
↓
Web App Manifestを生成
↓
<link rel="manifest"> をHTMLへ追加

そのため、manifest.json を直接設置できないサービスでも、HTMLへJavaScriptを追加できればPWA用のManifestを生成できます。

もちろん、自由にファイルを設置できるWebサイトでも使えます。

タイトルやアイコンも自動で取得する

1P1Aでは、基本的に現在のページの <title> がアプリ名として使用されます。

そのため、

HTML
<title>レザーミニウォレット</title>

という商品ページなら、そのタイトルをそのままホーム画面のアプリ名として使えます。

さらに、明示的に指定したい場合はOJapp独自のmetaタグも使えます。

HTML
<meta name="ojapp:title" content="ミニウォレット">

アイコンも同様です。

HTML
<meta name="ojapp:icon" content="https://example.com/wallet.png">

と書けば、その画像をホーム画面用アイコンとしてManifestへ設定できます。

現在の1P1Aでは、指定がない場合に既存の画像情報やfaviconなどからアイコン候補を取得する仕組みになっています。

つまり最低限、

HTML
<script src="https://ojapp.app/js/ojapp_1p1a.js"></script>

だけでも動き、必要なページだけ後からタイトルやアイコンを調整できます。

アプリ化したくないページは除外できる

1P1Aをサイト共通の <head> に入れると、サイト内のすべてのページでスクリプトが読み込まれます。

ただし、トップページやカテゴリ一覧など、「ここはページ単位のアプリにしたくない」という場所もあります。

この『アプリにしたくないページ』というのが少しPWAの罠というか癖があります。 詳しくはPWAの二極化:トップへ還る「1S1A」と、全ページをアプリ化する「1P1A」をご覧ください。

ページを除外する場合は、そのページだけ次のmetaタグを追加します。

HTML
<meta name="ojapp:exclude" content="true">

このタグを検出すると、1P1AはManifest生成処理そのものを停止します。

そのため、

Text
トップページ → 除外
カテゴリページ → 除外
商品ページ → 1P1A
記事ページ → 1P1A

といった使い分けもできます。

Service Workerを用意しなくても、ホームに追加するだけでメリットがある

「PWA」というと、Service Workerまで必ず自分で書かなければいけないイメージがあるかもしれません。

しかし、OJappのこの仕組みが担当しているのは、Webページをホーム画面から起動できる形にするためのWeb App Manifestの生成です。

1S1Aも1P1Aも、中心になっているのはManifestです。

実は、Service Workerによる複雑なキャッシュ制御を書かなくても、ホーム画面に追加されたWebアプリはOS(ブラウザ)標準の強力なキャッシュ領域で管理されます。そのため、2回目以降のアクセスではアセットが瞬時に読み込まれ、事故リスクゼロで爆速のアプリ体験を提供できます。

なのでOJappは、Manifestだけを1行のJavaScriptから生成しています。

まとめ

Webサイトをホーム画面から起動できる形にしたいだけなら、かなり小さな実装で始められます。

サイト全体を1つのアプリにするなら、

HTML
<script src="https://ojapp.app/js/ojapp_1s1a.js"></script>

ページごとにアプリ化するなら、

HTML
<script src="https://ojapp.app/js/ojapp_1p1a.js"></script>

基本はこれだけです。

1S1Aは、

Text
One Site. One App.

1P1Aは、

Text
One Page. One App.

Web App Manifestそのものは同じでも、「何を1つのアプリとして扱うか」でPWAの使い方は大きく変わります。

PWAを大掛かりな機能として考えるのではなく、まずはWebサイトに「ホーム画面から開ける入口を作る」くらいの感覚で導入してみるのが、一番分かりやすい使い方です。

関連記事やリンク

PWAとは?2026年最新!ホーム画面に追加できるWebサイトの仕組みと最も簡単な実装方法

2026年最新のPWAを初心者向けに解説。1S1A・1P1Aという2つの新しい設計思想から、manifest.jsonでWebサイトをホーム画面に追加する仕組み、Service Workerの役割までわかりやすく紹介します。

おじゃち

OJapp代表 WPプラグインPWAマーケティング・OnePage.OneApp.(1P1A)・ホーム画面名刺&SNSのPetal・その他OJappToolsなどを開発。PWA・ホーム画面・Safari挙動・軽量Web体験を中心に、実験しながらWebアプリを開発しています。

← 記事一覧へ戻る