AndroidでYahoo!ブラウザーだとuserAgentが取得できない?
解決したいこと
Android×Yahooアプリの場合のみエラー文を出す。
例)
フロントでvue.jsを主につかっています。
基本的に使っているブラウザをプログラミングで取得したい場合useragentを使っているかと思います。(useragentが廃止されているとかの話が出てますがここではしません。)
以下のようにuseragentを取得してブラウザの条件によってエラーを出したりするかと思います。
useAgentによる条件
const useragent = window.navigator.userAgent.toLowerCase();
if (useragent.indexOf("yahoo") != -1 && useragent.indexOf("Android") != -1 )
{
$("#disp").html('<p class="red_wak">※YahooブラウザではPDFファイルは開けません。Chrome等のブラウザをお使いください。</p>');
}
大体こんな感じにコードを組み実際本番で見たのですが、問題が起きました。自分のサイトをAサイトとします。
・AndroidでYahooアプリを起動→URL直打ちしてAサイトにアクセス→エラーがでる
・AndroidでYahooアプリを起動→他のサイトを経由してAサイトにアクセス→エラーが出てこない
以上の2つの事象が起きて強いました。
なぜできないのか調査した結果
yahooのuseragentの末尾に以下のコードが出てきます
YJApp-ANDROID
jp.cp.yahoo.android.yjtop/3.000.0
これが別タブで開くと消えてしまいます。
例えば
BサイトをみていてそこからAサイトの遷移ボタンを発見しそこからAサイトを別タブで表示し開くと末尾のコードが消えてしまうのです。
こうなるともうどうしようもなく、他の手段が見つからなくて困っております。なにかyahooでのアクセスを制限させる方法があるか分かる人がいたら教えてほしいです。
よろしくお願いします。