Note
iOS17以降のSafariでは主要なクエリパラメータ以外除外される。 サイトを正常に動作させるためにプライベートモードを検知してユーザーに知らせたい。
以下のパッケージで検知することができた。
detectIncognito().then((result) => {
console.log(result.browserName, result.isPrivate);
});
result
のbrowserName
とisPrivate
の値に合わせて各種処理を変更する。
上記の場合iOS上の各ブラウザはSafari同様、Webkitを利用しているためSafariと検出されてしまう。 以下の条件を追加することで、iOS上のその他ブラウザを判別できる。
var crios = !!navigator.userAgent.match(/crios/i);