browser-how-to

「ホーム画面に追加」と「パスキー認証」を、
アプリ内ブラウザや機械が苦手な人にも確実に届けるためのパッケージ群。

これはなに?

Facebook Messenger などのアプリ内ブラウザから開かれると、ホーム画面追加もパスキーも使えません。 また、パスキーは仕組みが分かりにくく「スマホでログインしたのにパソコンで入れない」と戸惑う人がいます。

このリポジトリは、その2つの課題を解決する独立した2つのパッケージを提供します。どちらもフロントエンドの JavaScript / TypeScript から数行で呼び出せます。

環境シミュレーター

User-Agent を切り替えて、各環境での判定結果と案内 UI を確認できます(案内の文言は選んだ UA で、表示はこのブラウザで描画されます)。

現在のブラウザの実環境で試すには「実機(このブラウザ)」を選んでください。

アプリ内ブラウザ判定

detectDevice() で、端末・ブラウザ・アプリ内ブラウザをまとめて判定できます。 どちらのパッケージからも同じ関数を import できます。

判定中…
import { detectDevice } from "@kuboon/browser-how-to";

const device = detectDevice();

if (device.inApp.isInApp) {
  // 例: Messenger / Facebook / Instagram / LINE / X / WeChat ...
  console.log(device.inApp.appId);    // "messenger" など
  console.log(device.inApp.appLabel); // "Facebook Messenger" など(表示用)
  // → ホーム画面追加もパスキーも使えないので、標準ブラウザへ誘導する
}

// その他に取れる情報
device.platform;   // "ios" | "ipados" | "android" | "desktop" | "unknown"
device.browser;    // "safari" | "chrome" | "samsung" | "firefox" | ...
device.osVersion;  // { major, minor } | null
device.isStandalone; // ホーム画面アプリとして起動中か

① ホーム画面に追加(a2hs)

ホーム画面に追加できるか判定し、できなければ標準ブラウザへ誘導、できる場合は機種別の手順を案内します。

判定中…
import { showA2hsGuide } from "@kuboon/browser-how-to/a2hs/ui";

document.querySelector("#install").addEventListener("click", () => {
  showA2hsGuide();
});

② パスキー(passkeys)

パスキーが使えるか判定し、使えなければ標準ブラウザへ誘導、使える場合はクロスデバイスや保存場所の仕組みを案内します。

判定中…
import { showPasskeyGuide } from "@kuboon/browser-how-to/passkeys/ui";

document.querySelector("#passkey").addEventListener("click", () => {
  showPasskeyGuide();
});

③ プッシュ通知(push)

通知を受け取れる環境か判定し、iPhone で未インストールならホーム画面追加(a2hs)の案内へ、 アプリ内ブラウザなら標準ブラウザへ誘導します。通知の購読自体は行わず、前提条件を案内します。

判定中…
import { showPushGuide } from "@kuboon/browser-how-to/push/ui";

document.querySelector("#push").addEventListener("click", () => {
  showPushGuide();
});