我被要求创建一个实际的HTML页面/JavaScript,以模拟使用JavaScript代码检测移动设备(iPhone/iPad/Android)的过程。然后,它将带用户进入另一个屏幕,要求他们输入电子邮件地址。
我被要求创建一个实际的HTML页面/JavaScript,以模拟使用JavaScript代码检测移动设备(iPhone/iPad/Android)的过程。然后,它将带用户进入另一个屏幕,要求他们输入电子邮件地址。
我知道这个回答来得有点晚,但是没有其他回答确实是100%正确的。如果你想要检测用户是否在任何移动设备上(Android、iOS、BlackBerry、Windows Phone、Kindle等),那么你可以使用以下代码:
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {
// Take the user to a different screen here.
}
该网站将帮助你创建代码:http://www.hand-interactive.com/resources/detect-mobile-javascript.htm
例如:
你可以通过以下javascript代码获取用户代理:
var uagent = navigator.userAgent.toLowerCase();
然后按照这个格式进行检查(只是举了一个快速示例,使用iPhone,但其他需要略有不同)
function DetectIphone()
{
if (uagent.search("iphone") > -1)
alert('true');
else
alert('false');
}
编辑
你可以创建一个简单的 HTML 页面,例如:
<html>
<head>
<title>Mobile Detection</title>
</head>
<body>
<input type="button" OnClick="DetectIphone()" value="Am I an Iphone?" />
</body>
</html>
<script>
function DetectIphone()
{
var uagent = navigator.userAgent.toLowerCase();
if (uagent.search("iphone") > -1)
alert('true');
else
alert('false');
}
</script>
一个相当简单的解决方案是检查屏幕宽度。由于几乎所有移动设备的最大屏幕宽度目前都为480像素,因此这种方法非常可靠:
if( screen.width <= 480 ) {
location.href = '/mobile.html';
}
用户代理字符串也是一个需要查看的地方。然而,前一种解决方案仍然更好,因为即使某些恶心的设备对于用户代理不正确响应,屏幕宽度也不会欺骗你。
唯一的例外是像iPad这样的平板电脑。这些设备的屏幕宽度比智能手机高,我可能会选择用户代理字符串来识别它们。
if(navigator.userAgent.match(/iPad/i)){
//code for iPad here
}
if(navigator.userAgent.match(/iPhone/i)){
//code for iPhone here
}
if(navigator.userAgent.match(/Android/i)){
//code for Android here
}
if(navigator.userAgent.match(/BlackBerry/i)){
//code for BlackBerry here
}
if(navigator.userAgent.match(/webOS/i)){
//code for webOS here
}
var isMobileDevice = navigator.userAgent.match(/iPad|iPhone|iPod/i) != null
|| screen.width <= 480;
一个简单的解决方案可以是纯CSS。您可以在样式表中设置样式,然后在其底部进行调整。现代智能手机的屏幕宽度看起来只有480像素,实际上要多得多。在CSS中检测较小屏幕的代码如下:
@media handheld, only screen and (max-width: 560px), only screen and (max-device-width: 480px) {
#hoofdcollumn {margin: 10px 5%; width:90%}
}
我使用mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)
所以我做了这件事。谢谢大家!
<head>
<script type="text/javascript">
function DetectTheThing()
{
var uagent = navigator.userAgent.toLowerCase();
if (uagent.search("iphone") > -1 || uagent.search("ipad") > -1
|| uagent.search("android") > -1 || uagent.search("blackberry") > -1
|| uagent.search("webos") > -1)
window.location.href ="otherindex.html";
}
</script>
</head>
<body onload="DetectTheThing()">
VIEW NORMAL SITE
</body>
</html>
既然现在已经是2015年了,如果你偶然发现这个问题,那么你应该使用window.matchMedia(如果仍然是2015年,需要为旧浏览器提供polyfill):
if (matchMedia('handheld').matches) {
//...
} else {
//...
}
var useragent = navigator.userAgent.toLowerCase();
if( useragent.search("iphone") )
; // iphone
else if( useragent.search("ipod") )
; // ipod
else if( useragent.search("android") )
; // android
etc