2012-03-29 35 views
21

tôi có thể kiểm tra cho iPhone với mã này:Tôi làm cách nào để kiểm tra tài khoản người dùng Windows Phone bằng javascript?

(navigator.userAgent.match(/iPhone/i)) 

Nhưng tôi muốn nhắm mục tiêu Windows Phone với UserAgent này:

Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; 
Motorola_ES405B_19103; Windows Phone 6.5.3.5) 

Có cách nào để làm điều này?

+0

bạn đã thử sử dụng một 'match' phù hợp với những gì bạn muốn sử dụng không? Nếu bạn có và nó không hoạt động, hãy nói những gì bạn đã thử. –

+0

Yea Tôi đã thử. Nhưng tôi muốn phù hợp với một phiên bản nhất định của điện thoại Windows. – oceanen

Trả lời

42

Windows Phone chắc chắn có vẻ là cụm từ bạn muốn đối sánh. Vì vậy, chỉ cần trao đổi iPhone trong matcher của bạn với thuật ngữ đó và bạn tốt để đi!


Như đã đề cập trong các ý kiến: tìm kiếm cũng cho iemobile sẽ cung cấp cho bạn một loạt thậm chí rộng hơn về phát hiện hệ điều hành điện thoại di động microsoft.

ví dụ .:

if(navigator.userAgent.match(/Windows Phone/i)){ 
    alert('Is a windows phone!'); 
} 

if(navigator.userAgent.match(/iemobile/i)){ 
    alert('Is some mobile IE browser!') 
} 

// and probably less common, but still useful: 
if(navigator.userAgent.match(/WPDesktop/i)){ 
    alert('It is a windows phone in desktop mode!') 
} 
+0

Điều đó có đi được tới 7.5 hoặc tôi có thể chỉ định phiên bản tối thiểu không? Giống như (navigator.userAgent.match (/ Windows Phone <7) hoặc một cái gì đó tương tự như vậy .. – oceanen

+0

Nó phù hợp với cách sử dụng cụm từ thông dụng, do đó, chỉ có thể khớp với những gì bạn thấy. Nhưng vì có số phiên bản được bao gồm trong tác nhân người dùng, bạn vẫn có thể sử dụng '(navigator.userAgent.match (/ Windows Phone [1-6]/i))' để phù hợp với tất cả các phiên bản từ 1 đến 6. – devsnd

+0

Ồ, điều đó thật tuyệt! Cảm ơn bạn! – oceanen

18

Nokia Lumia hoặc bất kỳ trình duyệt WPhone có máy tính để bàn và chế độ duyệt web di động, IEMobile gửi user agent khác nhau. Chế độ máy tính để bàn không gửi đối số mô hình Windows Phone X.Y. Tìm các thẻ Windows + ARM + Touch + WPDesktop và có thể kích thước màn hình để đoán wphone hoặc máy tính bảng. Đó là một hack tôi biết.

Lumia 920 WPhone 8, máy tính để bàn chế độ
Mozilla/5.0 (compatible; MSIE 10,0; Windows NT 6.2; Trident/6.0; ARM; Chạm; WPDesktop)

Lumia 920 WPhone 8
Mozilla/5.0 (compatible; MSIE 10,0; Windows Phone 8.0; Trident/6.0; IEMobile/10,0; ARM; Chạm; NOKIA; Lumia 920)

Lumia 820 WPhone 8
Mozilla/5.0 (c không tương thích; MSIE 10,0; Windows Phone 8.0; Trident/6.0; IEMobile/10,0; CÁNH TAY; Chạm; NOKIA; Lumia 820)

Lumia 630 WPhone 8
Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Chạm; rv: 11.0; IEMobile/11,0; NOKIA; id313-3) như Gecko

Lumia 630 WPhone 8, chế độ máy tính để bàn
Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0; Chạm; rv: 11.0; WPDesktop; NOKIA; id313-3) như Gecko

Lumia 800 WPhone 7.5
Mozilla/5.0 (tương thích; MSIE 9,0; Hệ điều hành Windows Phone 7.5; Trident/5.0; IEMobile/9,0; NOKIA; Lumia 800)

Lumia 900
Mozilla/5.0 (compatible; MSIE 9.0; Hệ điều hành Windows Phone 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 900)

WP7.5 IEMobile9 máy tính để bàn chế độ
Mozilla/5.0 (tương thích; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7)

-1
function isIEMobile() { 
    var regExp = new RegExp("IEMobile", "i"); 
    return navigator.userAgent.match(regExp); 
} 
+4

Nó luôn là một id tốt ea để thêm một ít cơ thể để bạn trả lời để giải thích mã của bạn. Và có lẽ thêm một hoặc hai tham chiếu. – Dukeling

+0

@Dukeling, cảm ơn vì phản hồi, sẽ chăm sóc –

0

tôi đã viết is-mobile component này có thể phát hiện cho dù bạn đang chạy trên một điện thoại Windows (nó sẽ kiểm tra Windows Phone, IEMobile và WPDesktop), và các nền tảng khác như tốt.

Hãy nhập nó và sử dụng như trong các ví dụ:

isMobile.Android() => true/false 
isMobile.iOS() => true/false 
isMobile.any() => true/false 
isMobile.Windows() => true/false 
isMobile.BlackBerry() => true/false 
Các vấn đề liên quan