コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

iOS17.4.1時点では、QRコードを読み取るアプリ「コードスキャナー」でURLを読み込むとWebViewで起動する。

タイトルどおりの話なのだが、なんの問題がおきるのかを整理する

対象となるOSバージョン

iOS 17.4.1

どういうことか

iOSにはQRコードを読み取るアプリが標準で2種類ある。一つはカメラ、一つはコードスキャナーである。

この2つのアプリでURLを指し示すQRコードを読み取ったときの挙動が異なる。

読み取るアプリ URLを読み込んだときの挙動
カメラ Safariでリンクを開く
コードスキャナー コードスキャナー内でWebViewが開く

この挙動のため、コードスキャナーでページを開くとSafariでのログインセッションなどは引き継がれないため、Safariでログインをしていても改めてログインを要求される。

下記の例ではSafariでログイン済みの状態だったときに、カメラで読み込むとつつがなくSafariが立ち上がりログイン済みだが、コードスキャナーの場合はWebViewがたちあがるのでログイン状態ではない事例

何がおきるのか

WebViewというものを認識していない利用ユーザーからすると「Safariでログインした直後にも関わらず再ログインを要求される」「QRコードからログイン限定領域を見ようとすると毎度ログインを要求される」などの事態がおきる。

気をつけるべきこと

要ログイン領域のページに遷移するQRコードを準備する場合にはこのような事態になることを勘案してオペレーションを設計する。また可能な限りコードスキャナーではなくカメラでのQRコードの読み取りを推奨すると懸念は減らせそう。

関連リンク