Kiểm tra JavaScript của thiết bị Android

Tập lệnh này sẽ phát hiện thiết bị bằng cách so sánh các mẫu với chuỗi Tác nhân người dùng đã cho. Bạn có thể tìm hiểu thông tin về thiết bị hiển thị trang web của bạn

  • di động hay không
  • nếu là thiết bị di động, dù là điện thoại hay máy tính bảng
  • hệ điều hành
  • Loại di động (A, B, C) NHẬN XÉT. điều này là hoàn toàn lỗi thời. tất cả các thiết bị hiện tại sẽ trả về 'A', vì vậy ngày nay nó vô dụng
  • phiên bản cụ thể (e. g. WebKit)

Nhánh

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
6 hiện tại đang sử dụng logic phát hiện từ Mobile-Detect@2. 8. 37

Bản demo/kiểm tra (xin lỗi về kiểu dáng bị thiếu) có thể được tìm thấy tại đây

TL;DR. bạn không nên sử dụng thư viện này trong trang HTML của mình và nó kém tin cậy hơn khi sử dụng phía máy chủ (Node. js)

Như đã đề cập sau, phát hiện dựa trên “Tác nhân người dùng” không phải là giải pháp đáng tin cậy trong hầu hết các trường hợp, bởi vì

  • Các quy tắc (biểu thức chính quy) liên tục lỗi thời và không đầy đủ
  • Bạn phải cập nhật mã dò tìm liên tục
  • Có nhiều cách khác để phát hiện ứng dụng web của bạn sẽ hoạt động như thế nào
  • Có thể có một số thư viện ngoài đó (có thể không miễn phí) đang thực hiện một công việc đáng tin cậy hơn

Nếu bạn vẫn muốn (hoặc phải) sử dụng thư viện này, bạn phải luôn đóng gói nó bằng mã của riêng mình, vì khả năng rất cao là bạn phải điều chỉnh hành vi một chút hoặc không hài lòng với kết quả của mobile-detect. js. Không sử dụng tràn lan MobileDetect trên tất cả mã của riêng bạn. Như bạn có thể thấy trong các vấn đề, có một số "lỗi", yêu cầu tính năng, yêu cầu kéo mà mọi người không hài lòng về cách MobileDetect hoạt động. Nhưng tôi không thể thay đổi hành vi của nó từ phiên bản này sang phiên bản khác, ngay cả khi điều này là hợp lý theo quan điểm của người dùng mới. Tôi hy vọng bạn thể hiện sự hiểu biết

Ít nhất là có một cách để vá thư viện khỉ (xem “Mở rộng” bên dưới)

trình duyệt



Nút. js / Express

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below

Tổng quan

var md = new MobileDetect(
    'Mozilla/5.0 (Linux; U; Android 4.0.3; en-in; SonyEricssonMT11i' +
    ' Build/4.1.A.0.562) AppleWebKit/534.30 (KHTML, like Gecko)' +
    ' Version/4.0 Mobile Safari/534.30');

// more typically we would instantiate with 'window.navigator.userAgent'
// as user-agent; this string literal is only for better understanding

console.log( md.mobile() );          // 'Sony'
console.log( md.phone() );           // 'Sony'
console.log( md.tablet() );          // null
console.log( md.userAgent() );       // 'Safari'
console.log( md.os() );              // 'AndroidOS'
console.log( md.is('iPhone') );      // false
console.log( md.is('bot') );         // false
console.log( md.version('Webkit') );         // 534.3
console.log( md.versionStr('Build') );       // '4.1.A.0.562'
console.log( md.match('playstation|xbox') ); // false

Thêm thông tin …

Có một số tài liệu được tạo bởi JSDoc

https. //hgoebl. github. io/mobile-detect. jsdoc/MobileDetect. html

Phản ứng phụ

Tập lệnh tạo thuộc tính toàn cầu

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
7

Tiện ích mở rộng Modernizr

Khi sử dụng Modernizr, bạn có thể bao gồm

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
0. Nó sẽ thêm các lớp CSS
var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
1,
var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
2,
var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
3 và
var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
4 nếu có

Bạn có thể dễ dàng mở rộng nó, e. g.

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
5,
var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
6, v.v.

Kích thước (byte)

  • phát triển. 70168
  • rút gọn. 39585
  • rút gọn + nén. 16556 (
    var MobileDetect = require('mobile-detect'),
        md = new MobileDetect(req.headers['user-agent']);
    // .. see below
    
    7)

Bower (mà bạn không nên sử dụng cho các dự án mới)

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
1

Nút. js / npm

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
2

Kiểm tra JavaScript của thiết bị Android

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
3

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
3

Mặc dù không nên dựa vào các phương thức hoặc cấu trúc nội bộ của MobileDetect, nhưng bạn có thể thay đổi hành vi bằng cách thay thế các phương thức nội bộ cụ thể bằng các triển khai của riêng bạn. Nếu bạn cảm thấy đây là khả năng duy nhất, hãy tiếp tục và xem mã nguồn và các ví dụ trong tests/spec/MobileDetectSpec. js (tìm kiếm “Khả năng mở rộng”)

Phát hiện thiết bị thường là giải pháp đầu tiên bạn nghĩ đến. Vui lòng cân nhắc tìm kiếm các giải pháp khác như truy vấn phương tiện và phát hiện tính năng (e. g. w/ Modernizr). Có thể có các thư viện phát hiện thiết bị tốt hơn (đơn giản hơn, nhỏ hơn, nhanh hơn), vì vậy ở đây bạn có một danh sách (thứ tự không có ý nghĩa gì ngoài phần tử đầu tiên)

Thống kê sử dụng di động

Nếu bạn phải cung cấp số liệu thống kê về số lượng và thiết bị di động nào đang truy cập trang web của mình, bạn có thể tạo số liệu thống kê (dữ liệu và lượt xem) với hgoebl/mobile-usage. Có nhiều móc để tùy chỉnh tính toán thống kê theo nhu cầu của bạn

Giấy phép MIT (xem tệp GIẤY PHÉP)

Đóng góp của bạn được hoan nghênh. Nếu bạn muốn các thiết bị mới được hỗ trợ, thay vào đó hãy đóng góp cho Mobile-Detect

Để chạy tập lệnh tạo, cần phải có Mobile-Detect làm thư mục anh em với mobile-detect. js/. (Tôi đã thử sử dụng

var MobileDetect = require('mobile-detect'),
    md = new MobileDetect(req.headers['user-agent']);
// .. see below
8 nhưng gặp một số sự cố trên Mac OS X - có thể là do lỗi của tôi…)

Làm cách nào để kiểm tra xem thiết bị có phải là Android JavaScript không?

Cách tiếp cận 1. .
sử dụng hoa tiêu. userAgent để lấy giá trị của tiêu đề tác nhân người dùng do trình duyệt gửi đến máy chủ
Kiểm tra chỉ mục của 'android' trong userAgent
Nếu chỉ số lớn hơn -1 thì đó là điện thoại Android chứ không phải điện thoại Android

Làm cách nào để phát hiện thiết bị di động bằng JavaScript?

Để phát hiện thiết bị di động bằng JavaScript, chúng tôi sẽ sử dụng đối tượng điều hướng cửa sổ chứa tất cả thông tin liên quan đến trình duyệt . Thuộc tính mà chúng tôi sẽ sử dụng để phát hiện thiết bị di động sẽ là thuộc tính userAgent được sử dụng để trả về tiêu đề tác nhân người dùng được trình duyệt gửi đến máy chủ.

Làm cách nào để xác định loại thiết bị trong JavaScript?

Để phát hiện xem người dùng có đang sử dụng thiết bị di động trong JavaScript hay không, chúng ta có thể sử dụng thuộc tính userAgent . Thuộc tính này là một phần của đối tượng điều hướng và được gửi bởi trình duyệt trong tiêu đề HTTP. Nó chứa thông tin về tên, phiên bản và nền tảng của trình duyệt.