AnDeriensのブログ

個人的なブログです

Facebook MessengerのUserAgent

概要

iPhoneFacebook Messengerアプリのアプリ内ブラウザで、テキスト入力フォームにフォーカス後、ソフトウェアキーボードを閉じると画面トップに強制移動させられる状態になっていた。(2019年11月12日確認、アプリの不具合として報告済み)

応急処置として、Messengerアプリの場合のみ、画面を固定する対処をした。 その際、他の環境では動作を変えたくなかったので、使われているブラウザがFacebook Messengerのアプリ内ブラウザであることを確認する必要があった。

判別の仕方

User Agent(以下、UA)を見ることで判別可能。

UAの取得方法

判定時に大文字小文字の判別は無視したいので、小文字にして取得。console.logとかalertとかHTMLに書き出しちゃうとかで出力すれば確認できる。

var ua = navigator.userAgent.toLowerCase();

補足

UAに関するまとめはここが詳しかった。

UserAgentからOS/ブラウザなどの調べかたのまとめ - Qiita

UA取得結果

mozilla/5.0 (iphone; cpu iphone os 13_2_2 like mac os x) applewebkit/605.1.15 (khtml, like gecko) mobile/15e148 [fban/messengerforios;fbdv/iphone12,3;fbmd/iphone;fbsn/ios;fbsv/13.2.2;fbss/3;fbid/phone;fblc/ja_jp;fbop/5]
mozilla/5.0 (linux; android 7.1.1; asus_x00hd build/nmf26f; wv) applewebkit/537.36 (khtml, like gecko) version/4.0 chrome/70.0.3538.110 mobile safari/537.36 [fb_iab/orca-android;fbav/240.1.0.16.120;]
mozilla/5.0 (iphone; cpu iphone os 13_2_2 like mac os x) applewebkit/605.1.15 (khtml, like gecko) mobile/15e148 [fban/fbios;fbdv/iphone12,3;fbmd/iphone;fbsn/ios;fbsv/13.2.2;fbss/3;fbid/phone;fblc/ja_jp;fbop/5;fbcr/kddi]

その他各種ブラウザについては割愛。

結果:判別方法

UA内にiphonemessengerの文字列が含まれているかで判定できそうなので、それで対応。めでたしめでたし。