17

javascript を使用してモバイル デバイスの名前 (「ジョンの iPhone」など) を取得する方法はありますか?


あまり明確ではなかったかもしれません... 私が意味したのは、それが iPhone や iPad などであるかどうかではなく、「デバイス名」です。たとえば、「ジョンの iPhone」などです。

4

4 に答える 4

16

ネイティブ ブラウザーで実行されている Web アプリの場合、javascript を使用してこれを行うことはできません。通常、javascript はこの個人識別データにアクセスできません。

考えられる 1 つの方法は、デバイス名にアクセスするための API を持つ可能性のあるPhoneGapなどのフレームワークを使用することです。ただし、アプリ ストア経由でしか Web サイトを展開できないため、ユース ケースによっては非常に制限される可能性があります。

于 2012-08-22T09:31:57.660 に答える
13

あなたの最善の策は、ユーザーエージェントを使用することです:

例えば

const ua = navigator.userAgent
const device = {
  iPad: /iPad/.test(ua),
  iPhone: /iPhone/.test(ua),
  Android4: /Android 4/.test(ua)
}

このオブジェクトを使用すると、次のような条件付きロジックを記述できます。if(device.iPad) { /* do stuff */ }

于 2012-08-13T08:24:37.213 に答える
2

スキャナーが組み込まれたモバイルデバイスを使用しています。異なるデバイスの JavaScript ライブラリを使用し、異なるメーカー (Zebra、Honeywell、Datalogic、iOs など) のライブラリとの競合を回避するには、各デバイスを識別する方法を考え出す必要があります。適切なライブラリをロードすると、これが私が思いついたものです。楽しみ

getDeviceName: function () {
    var deviceName = '';

    var isMobile = {
        Android: function() {
            return navigator.userAgent.match(/Android/i);
        },
        Datalogic: function() {
            return navigator.userAgent.match(/DL-AXIS/i);
        },
        Bluebird: function() {
            return navigator.userAgent.match(/EF500/i);
        },
        Honeywell: function() {
            return navigator.userAgent.match(/CT50/i);
        },
        Zebra: function() {
            return navigator.userAgent.match(/TC70|TC55/i);
        },
        BlackBerry: function() {
            return navigator.userAgent.match(/BlackBerry/i);
        },
        iOS: function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i);
        },
        Windows: function() {
            return navigator.userAgent.match(/IEMobile/i);
        },
        any: function() {
            return (isMobile.Datalogic() || isMobile.Bluebird() || isMobile.Honeywell() || isMobile.Zebra() || isMobile.BlackBerry() || isMobile.Android() || isMobile.iOS() || isMobile.Windows());
        }
    };

    if (isMobile.Datalogic())
        deviceName = 'Datalogic';
    else if (isMobile.Bluebird())
        deviceName = 'Bluebird';
    else if (isMobile.Honeywell())
        deviceName = 'Honeywell';
    else if (isMobile.Zebra())
        deviceName = 'Zebra';
    else if (isMobile.BlackBerry())
        deviceName = 'BlackBerry';
    else if (isMobile.iOS())
        deviceName = 'iOS';
    else if ((deviceName == '') && (isMobile.Android()))
        deviceName = 'Android';
    else if ((deviceName == '') && (isMobile.Windows()))
        deviceName = 'Windows';

    if (deviceName != '') {
        consoleLog('Devices information deviceName = ' + deviceName);
        consoleLog('Devices information any = ' + isMobile.any());
        consoleLog('navigator.userAgent = ' + navigator.userAgent);
    }

    return deviceName;
},

これは、使用方法の例です。

initializeHandheldScanners: function () {
    if (DeviceCtrl.getDeviceName() == 'Zebra')
        DeviceCtrl.initializeSymbolScanner();

    if (DeviceCtrl.getDeviceName() == 'Honeywell')
        DeviceCtrl.initializeHoneywellScanner();

    if (DeviceCtrl.getDeviceName() == 'Datalogic')
        DeviceCtrl.initializeDatalogicScanner();
},

Cory LaViska に感謝します。私は彼の作品に基づいてこれを行いました。詳しく知りたい方はこちらのリンク

https://www.abeautifulsite.net/detecting-mobile-devices-with-javascript

于 2016-12-16T20:42:47.447 に答える