htsign's blog

ノンジャンルで書くつもりだけど技術系が多いんじゃないかと思います

Microsoft Edge (Windows 10 Mobile) のUser-Agent

なかなかすごいことになっています。
どこかの記事(確かスラド辺り)で読んだことありますが、WebKitと同じ挙動を示すようにしたとかなんとか。

Lumia 950で確認しました。

Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.10586

例えば以下のような条件判定に一致するようになります。

var ua = navigator.userAgent.toLowerCase(), cond;

cond = /android/.test(ua) && /mobile/.test(ua);
console.log("Android : " + cond); // "Android : true"

cond = /safari/.test(ua);
console.log("Safari : " + cond);  // "Safari : true"

Linux; U;が入っていないのが救いですね。
参照: 滅び行くAndroid 標準ブラウザをサポート外にして悩みの種をなくす話 - Qiita


User-Agentでブラウザの判断をせざるを得ない現状も個人的にはどうかと思います。
本当であれば機能面で分けるべきなんですよね。

console.log("Legacy IE : " + (/*@cc_on ! @*/false));

var webkitKeys = Object.keys(window).filter(function(e){
  return window.hasOwnProperty(e) && e.indexOf("webkit") !== -1;
});
console.log("WebKit : " + (webkitKeys.length > 0));

まぁこれはこれで穴がありますが…。