判断设备

思考一个问题,如何让一个二维码在用不同的设备扫描时进入不一样的地址呢(听起来像不像隔空取物)?前端js可以实现吗?答案是ok的,目前找到一种办法,分享一下。

核心就是利用userAgent来判断设备,那什么是userAgent?简单的说,User Agent就是用来识别浏览器名称、版本、引擎以及操作系统等信息的内容。于是乎,User Agent的判断就成为识别浏览器的关键,不仅仅如此,移动互联网开发势头迅猛,那么通过User Agent判断桌面端设备或移动设备就变的很为重要。

首先写一个空页面里面只写一段逻辑代码,就是判断设备跳不同的地址(注:这只是一个小例子,里面只判断了移动设备是安卓还是ios)

if (/android/i.test(navigator.userAgent)){
    // 这里是安卓的
}

if (/ipad|iphone|mac/i.test(navigator.userAgent)){
    // 这里是ios的
}

还有很多的介绍这种的实现方法,更全面更严谨,例如:

<script type="text/javascript">
  var browser={
    versions:function(){
            var u = navigator.userAgent, app = navigator.appVersion;
            return {         //移动终端浏览器版本信息
                 trident: u.indexOf(‘Trident‘) > -1, //IE内核
                presto: u.indexOf(‘Presto‘) > -1, //opera内核
                webKit: u.indexOf(‘AppleWebKit‘) > -1, //苹果、谷歌内核
                gecko: u.indexOf(‘Gecko‘) > -1 && u.indexOf(‘KHTML‘) == -1, //火狐内核
                mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
                ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
                android: u.indexOf(‘Android‘) > -1 || u.indexOf(‘Linux‘) > -1, //android终端或uc浏览器
                iPhone: u.indexOf(‘iPhone‘) > -1 , //是否为iPhone或者QQHD浏览器
                iPad: u.indexOf(‘iPad‘) > -1, //是否iPad
                webApp: u.indexOf(‘Safari‘) == -1 //是否web应该程序,没有头部与底部
            };
         }(),
         language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
 document.writeln("语言版本: "+browser.language);
document.writeln(" 是否为移动终端: "+browser.versions.mobile);
document.writeln(" ios终端: "+browser.versions.ios);
document.writeln(" android终端: "+browser.versions.android);
document.writeln(" 是否为iPhone: "+browser.versions.iPhone);
document.writeln(" 是否iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent);
  </script>

判断到这里应该简单了吧,跳走就简单了location.replace(‘地址‘)就好了!

简单吧,可是。。。凡事都有可是啊,这个做法是有漏洞的,所有前端能够做到的东西,用户都可以拿得到代码,这就会产生风险,就会被‘玩儿’;怎么办呢?

现在就只能有两种方式解决了,一是直接分开解决所有问题;但是就是很多的时候就是需要这个功能,那就只能服务端来做了。哎。。。。

谁有更好的解决方法吗?求教啊。。。。

判断设备,布布扣,bubuko.com

时间: 2024-10-27 06:47:39

判断设备的相关文章

js判断设备是iOS还是安卓

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" /> <title></title> <style&g

【ios开发】 判断设备屏幕尺寸、分辨率

IOS 设备现有的分辨率如下:iPhone/iPod Touch普通屏                          320像素 x 480像素       iPhone 1.3G.3GS,iPod Touch 1.2.33:2 Retina 屏           640像素 x 960像素        iPhone 4.4S,iPod Touch 416:9 Retina 屏               640像素 x 1136像素      iPhone 5,iPod Touch 5

判断iPhone和iPad 判断设备版本

//判断iPhone和iPad #define IS_IPHONE (!IS_IPAD) #define IS_IPAD (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone) //判断设备版本 #define IS_IOS6_LAGACY floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1 #define IS_IOS7 floor(NSFounda

JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器

var ua = navigator.userAgent; var browser = {}, weixin = ua.match(/MicroMessenger\/([^\s]+)/i), webkit = ua.match(/WebKit\/([\d.]+)/i), android = ua.match(/(Android)\s+([\d.]+)/i), ipad = ua.match(/(iPad).*OS\s([\d_]+)/i), ipod = ua.match(/(iPod).*OS

JS 一些功能代码块[如判断设备]

判断是否为PC 来源:http://blog.csdn.net/seven1276/article/details/8211877 function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad"

判断设备是不是第一次进入应用

在appdelegate中添加以下代码: if (![[NSUserDefaults standardUserDefaults] boolForKey:@"firstStart"]) { NSLog(@"第一次"); [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstStart"];//设置成yes以后再也不进入 进入引导页; }else{ NSLog(@"

Jquery 判断设备

判断设备是PC端,还是移动端 1 //判断设备 alert 20160512 2 var ua = navigator.userAgent.toLocaleLowerCase(); 3 var pf = navigator.platform.toLocaleLowerCase(); 4 var isAndroid = (/android/i).test(ua)||((/iPhone|iPod|iPad/i).test(ua) && (/linux/i).test(pf)) 5 || (/u

判断设备是否安装目标应用

#判断设备是否安装目标应用 /** * 判断是否安装目标应用 * * @param packageName 目标应用安装后的包名 * @return 是否已安装目标应用 */ private boolean isInstallByread(String packageName) { return new File("/data/data/" + packageName).exists(); } 原文地址:https://www.cnblogs.com/Ricardoldc/p/1040

如何判断设备是平板还是手机

现在市场是的手机尺寸一般都是小于6寸的,而平板一般是大于6寸的,所以可以通过计算设备的尺寸来判断设备是平板还是手机. 判断代码如下: public static boolean isTablet(Activity activity){ DisplayMetrics dm = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); double diagonalPixels = Ma