2

Android デバイスは、ユーザー エージェント文字列の一部です。

Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADR-1212030829) Presto/2.11.355 Version/12.10

Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; SAMSUNG-SGH-I317 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

ただし、文字列を分割するときに、デバイスが異なるインデックスに存在する可能性があります;(存在しない場合もあります)。Javascript/Ruby でデバイス名を取得する簡単な方法はありますか?

更新:明確にするために: Android/バージョンではなく、デバイス名を取得することに興味があります

4

2 に答える 2

0

Android デバイスかどうかを知る方法だけが必要な場合は、Javascript コードは次のように単純です。

function isAndroid() {
    var ua = navigator.userAgent.toLowerCase();
    return (ua.indexOf("android") > -1);
}

バージョンにも興味がある場合は、次の Javascript コードを試してください。

function getAndroidVersion() {
    var androidVersion = -1; // def value, for non-Android devices
    var ua = navigator.userAgent.toLowerCase();
    var androidIndex = ua.indexOf('android');

    if(androidIndex != -1) {
        var versionStartIndex = androidIndex + 8;
        var versionEndIndex = ua.indexOf(';', versionStartIndex);

        androidVersion = parseFloat(ua.slice(versionStartIndex, versionEndIndex));
    }

    return androidVersion;
}
于 2012-12-23T17:36:38.803 に答える
0

そこにない場合、そこにあることを取得する方法はありません..「Android xyz;」の形式の場合、正規表現はあなたの友達です.

「user_agent」にユーザーエージェント文字列が含まれていると仮定します。

ルビー、例えば

user_agent[/Android (.*?);/]

変数 $1 にはバージョンが含まれます。

Javascript

var version = user_agent.match("Android (.*?);")[1];
于 2012-12-23T16:31:14.557 に答える