11判断 ios_ios 判断是否为ios11 - CSDN
  • iOS11新增版本判断API

    2018-01-19 15:23:05
    iOS11新增版本判断API iOS11版本现在有了简单的API,OC也开始支持swfit的@available语法,不用再手写iOS版本判断了。 if (@available(iOS 11.0, *)) { // 版本适配 } // 或者 #ifdef __IPHONE_11_0 #endif ...

    iOS11新增版本判断API

    • iOS11版本现在有了简单的API,OC也开始支持swfit的@available语法,不用再手写iOS版本判断了。
    if (@available(iOS 11.0, *)) {
      // 版本适配
    }
    // 或者
    #ifdef __IPHONE_11_0   
    #endif
    • 目前没发现有iPhoneX的机型判断API,暂时可以使用size来做代替判断。
    #define kDevice_iPhoneX CGSizeEqualToSize(CGSizeMake(375, 812), [[UIScreen mainScreen] bounds].size)
    // 或者
    if (UIScreen.mainScreen.bounds.size.height == 812) {
        NSLog(@"this is iPhone X");
    }
    展开全文
  • if #available(iOS 10.0, *) { }else { } 当然了,#available()不仅可以判断iOS,还可以判断if #available(tvOS 1.0, *) { } if #available(watchOS 1.0, *) { }

    if #available(iOS 10.0, *) {
                
    }else {
                
    }

    当然了,#available()不仅可以判断iOS,还可以判断
    if #available(tvOS 1.0, *) {
                    
    }
    if #available(watchOS 1.0, *) {
                    
    }
    if #available(OSX 10.11, *) {
                    
    }

    建议建一个Swift文件,里面写一个判断版本的函数,然后在其他地方调用。

    展开全文
  • js判断ios还是android

    2018-07-31 18:14:53
    js判断客户端是否是IOS或者是Android //如果返回true 则说明是Android function is_weixin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == 'micromessenger') { ...

    js判断客户端是否是IOS或者是Android

    //如果返回true 则说明是Android
    function is_weixin() {
         var ua = window.navigator.userAgent.toLowerCase();
         if (ua.match(/MicroMessenger/i) == 'micromessenger') {
             return true;
         } else {
             return false;
         }
    }

    js判断手机操作系统(ios或者是Android)

    $(function () {
        var u = navigator.userAgent, app = navigator.appVersion;
        var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g
        var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
        if (isAndroid) {
           //这个是安卓操作系统
        }
        if (isIOS) {
        //这个是ios操作系统
        }
    });

    js判断是否是电脑端

    //如果返回的是false说明当前操作系统是手机端,如果返回的是true则说明当前的操作系统是电脑端
    function IsPC() {
        var userAgentInfo = navigator.userAgent;
        var Agents = ["Android", "iPhone",
            "SymbianOS", "Windows Phone",
            "iPad", "iPod"];
        var flag = true;
        for (var v = 0; v < Agents.length; v++) {
            if (userAgentInfo.indexOf(Agents[v]) > 0) {
                flag = false;
                break;
            }
        }
        return flag;
    }
    参考地址:http://www.cnblogs.com/zyjzz/p/4996926.html
    展开全文
  • iOS 判断系统版本

    2018-02-12 17:12:18
    由于各种原因,程序需要兼容iOS以前的版本,那么设置一个较低的部署...以前我们判断iOS版本会如下写: if ([[[UIDevice currentDevice].systemVersion substringToIndex:1] intValue] >= 7) { // iOS 7.0 及以后的版本

    方案一

    double systemVersion = [UIDevice currentDevice].systemVersion.boolValue;
    
        if (systemVersion >= 7.0) {
            // >= iOS 7.0
        } else {
            // < iOS 7.0
        }
    
        if (systemVersion >= 10.0) {
            // >= iOS 10.0
        } else {
            // < iOS 10.0
        }

    如果只是大致判断是哪个系统版本,上面的方法是可行的,如果具体到某个版本,如 10.0.1,那就会有偏差。我们知道systemVersion依旧是10.0。

    方案二

        NSString *systemVersion = [UIDevice currentDevice].systemVersion;
        NSComparisonResult comparisonResult = [systemVersion compare:@"10.0.1" options:NSNumericSearch];
    
        if (comparisonResult == NSOrderedAscending) {
            // < iOS 10.0.1
        } else if (comparisonResult == NSOrderedSame) {
            // = iOS 10.0.1
        } else if (comparisonResult == NSOrderedDescending) {
            // > iOS 10.0.1
        }
    
        或者
    
        if (comparisonResult != NSOrderedAscending) {
            // >= iOS 10.0.1
        } else {
            // < iOS 10.0.1
        }

    有篇博客提到,这种方法不靠谱。比如系统版本是10.1.1,而我们提供的版本是8.2,会返回NSOrderedAscending,即认为10.1.1 < 8.2 。
    其实,用这样的比较方式NSComparisonResult comparisonResult = [systemVersion compare:@"10.0.1"],的确会出现这种情况,因为默认是每个字符逐个比较,即1(0.1.1) < 8(.2),结果可想而知。但我是用NSNumericSearch方式比较的,即数值的比较,不是字符比较,也不需要转化成NSValue(NSNumber)再去比较。

    方案三

    if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_7_0) {
        // >= iOS 7.0
    } else {
        // < iOS 7.0
    }
    
    或者:
    
    if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iOS_7_0) {
        // >= iOS 7.0
    } else {
        // < iOS 7.0
    }

    这些宏定义是Apple预先定义好的,如下:

    #if TARGET_OS_IPHONE
    ...
    #define NSFoundationVersionNumber_iOS_9_4 1280.25
    #define NSFoundationVersionNumber_iOS_9_x_Max 1299
    #endif
    

    细心的童靴可能已经发现问题了。《惊! Apple没有提供iOS 10 以后的宏?》。那我们要判断iOS10.0以后的版本该怎么做呢?
    有篇博客中提到,iOS10.0以后版本号提供了,并且逐次降低了,并提供了依据。

    #if TARGET_OS_MAC
    #define NSFoundationVersionNumber10_1_1 425.00
    #define NSFoundationVersionNumber10_1_2 425.00
    #define NSFoundationVersionNumber10_1_3 425.00
    #define NSFoundationVersionNumber10_1_4 425.00
    ...
    #endif
    

    我想这位童鞋可能没仔细看, 这两组宏是分别针对iPhone和macOS的,不能混为一谈的。

    所以也只能像下面的方式来大致判断iOS 10.0, 但之前的iOS版本是可以准确判断的。

        if (NSFoundationVersionNumber > floor(NSFoundationVersionNumber_iOS_9_x_Max)) {
            // > iOS 10.0
        } else {
            // <= iOS 10.0
        }

    方案四

    在iOS8.0中,Apple也提供了NSProcessInfo 这个类来检测版本问题。

    @property (readonly) NSOperatingSystemVersion operatingSystemVersion NS_AVAILABLE(10_10, 8_0);
    - (BOOL) isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion)version NS_AVAILABLE(10_10, 8_0);
    

    所以可以这样检测:

    if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){.majorVersion = 8, .minorVersion = 3, .patchVersion = 0}]) {
         // >= iOS 8.3
    } else {
         // < iOS 8.3
    }

    用来判断iOS 10.0以上的各个版本也是没有问题的,唯一的缺点就是不能准确版本是哪个版本,当然这种情况很少。如果是这种情况,可以通过字符串的比较判断。

    方案五

    通过判断某种特定的类有没有被定义,或者类能不能响应哪个特定版本才有的方法。
    比如,UIAlertController 是在iOS 8.0才被引进来的一个类,我们这个依据来判断版本

        if (NSClassFromString(@"UIAlertController")) {
            // >= iOS 8.0
        } else {
            // < iOS 8.0
        }

    说到这里,就顺便提一下在编译期间如何进行版本控制,依然用UIAlertController 来说明。

    NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAlertController : UIViewController

    NS_CLASS_AVAILABLE_IOS(8_0) 这个宏说明,UIAlertController 是在iOS8.0才被引进来的API,那如果我们在iOS7.0上使用,应用程序就会挂掉,那么如何在iOS8.0及以后的版本使用UIAlertController ,而在iOS8.0以前的版本中仍然使用UIAlertView 呢?

    这里我们会介绍一下在#import <AvailabilityInternal.h> 中的两个宏定义:

    • __IPHONE_OS_VERSION_MIN_REQUIRED

    • __IPHONE_OS_VERSION_MAX_ALLOWED

    从字面意思就可以直到,__IPHONE_OS_VERSION_MIN_REQUIRED 表示iPhone支持最低的版本系统,__IPHONE_OS_VERSION_MAX_ALLOWED 表示iPhone允许最高的系统版本。

    __IPHONE_OS_VERSION_MAX_ALLOWED 的取值来自iOS SDK的版本,比如我现在使用的是Xcode Version 8.2.1(8C1002),SDK版本是iOS 10.2,怎么看Xcode里SDK的iOS版本呢?

    进入PROJECT,选择Build Setting,在Architectures中的Base SDK中可以查看当前的iOS SDK版本。

    打印这个宏,可以看到它一直输出100200。

    __IPHONE_OS_VERSION_MIN_REQUIRED 的取值来自项目TARGETS的Deployment Target,即APP愿意支持的最低版本。如果我们修改它为8.2,打印这个宏,会发现输出80200,默认为10.2。

    通常,__IPHONE_OS_VERSION_MAX_ALLOWED 可以代表当前的SDK的版本,用来判断当前版本是否开始支持或具有某些功能。而__IPHONE_OS_VERSION_MIN_REQUIRED 则是当前SDK支持的最低版本,用来判断当前版本是否仍然支持或具有某些功能。

    回到UIAlertController 使用的问题,我们就可以使用这些宏,添加版本检测判断,从而使我们的代码更健壮。

     - (void)showAlertView {
    #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"message" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
        [alertView show];
    #else
        if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_8_0) {
            UIAlertController *alertViewController = [UIAlertController alertControllerWithTitle:@"Title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];
    
            UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil];
            UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
    
            [alertViewController addAction:cancelAction];
            [alertViewController addAction:otherAction];
    
            [self presentViewController:alertViewController animated:YES completion:NULL];
        }
    #endif
    }

    方案六

    iOS 11.0 以后,Apple加入了新的API,以后我们就可以像在Swift中的那样,很方便的判断系统版本了。

    if (@available(iOS 11.0, *)) {
        // iOS 11.0 及以后的版本
    } else {
        // iOS 11.0 之前
    }

    参考链接:

    展开全文
  • iOS 13下的设备判断

    2019-11-29 18:33:59
    通常的设备判断方式(1) 移动端还是PC(2) 安卓还是iOS(3) 是否用微信打开2. iOS 13的问题3. iOS 13下如何判断设备 1. 通常的设备判断方式 通常在进行如下判断时,常使用navigator.userAgent。 (1) 移动端还是PC ...

    1. 通常的设备判断方式

    通常在进行如下判断时,常使用navigator.userAgent

    (1) 移动端还是PC

    function isMobile(){
      return /Mobile/i.test(navigator.userAgent);
    }
    

    (2) 安卓还是iOS

    isIOS() {
        return /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)
    }
    isAndroid(){
    	return (/(Android)/i.test(navigator.userAgent)
    }
    

    (3) 是否用微信打开

    isWechat(){
    	return (/(MicroMessenger)/i.test(navigator.userAgent)
    }
    

    2. iOS 13的问题

    使用iOS 13下的移动设备,Safari默认开启请求桌面端的网站。
    navigator.userAgent在Mac在safari下显示的:

    “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.2 Safari/605.1.15”

    而在ipad上显示:
    在这里插入图片描述

    所以该属性无法进行区分。

    3. iOS 13下如何判断设备

    只能用GPU来判断。例如:

    (function () {
        var canvas = document.createElement('canvas'),
            gl = canvas.getContext('experimental-webgl'),
            debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
    
        console.log(gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL));
    })();
    

    可参考: https://51degrees.com/blog/device-detection-for-apple-iphone-and-ipad

    展开全文
  • <body><script type="text/javascript"> var str= navigator.userAgent.toLowerCase(); var ver=str.match(/cpu iphone os (.*?) like mac os/); if(!ver){
  • #define IsiPhone11 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) : NO) #define IsiPhone11Pr...
  • js判断pc端移动端,js判断ios和Android,js判断微信浏览器 js判断pc端移动端,js判断ios和Android var ua = navigator.userAgent; var ipad = ua.match(/(iPad).*OS\s([\d_]+)/), isIphone = !ipad &amp;&...
  • JS判断IOS系统版本

    2014-11-18 11:22:06
    var ver = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/); ver = parseInt(ver[1], 10); if(ver) { alert("需要IOS7及以上才可安装"); return; }
  • 怎么判断ios 版本

    2012-02-25 08:53:38
    前几天工程项目要用到判断ios版本,最后研究了一下,分享一下:   -(void)getIOSVersion { // #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000 //此方法和编译器相关 // quanju.iOSVersion=1; // #...
  • vue判断安卓还是IOS

    2020-03-24 11:53:08
    vue判断是安卓还是IOS 写博客是为了做笔记 最近工作上遇到这样一个需求:vue写的页面,需要同时跟安卓和ios进行交互; 若是安卓,执行代码:android.finishActivity(); 若是IOS,执行代码: try { window.webkit...
  • 代码中判断设备iOS系统版本号从而使用不同方法处理来适配的四种方法
  • 在预编译阶段判断ios版本  #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0 // This code will compile on versions >= ios5.0 #else // This code will compile on versions #endif
  • JS判断IOS还是Android

    2017-10-31 10:17:50
    原生js在App端会经常遇到判断是android还是ios端,下面这个是之前用到的方法 var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; /...
  • var u = navigator.userAgent; var ua = navigator.userAgent.toLowerCase(); // 判断安卓 u.indexOf("Android") > -1 || u.indexOf("Linux")...// 判断iOS !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终...
  • mui判断ios还是安卓

    2017-12-04 18:11:32
    检测是否为iOS或安卓系统版本是否小于4.4 if(mui.os.ios||(mui.os.android&&parseFloat(mui.os.version))){ //...操作 }
  • ios11新增了56种emoji表情,如何判断
  • 1、h5页面 判断 移动端是ios、或者Android 2、代码$(function(){ var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //...
  • 判断iOS的设备型号

    2014-10-11 17:55:44
    - (NSString*) doDevicePlatform {  size_t size;  int nR = sysctlbyname("hw.machine", NULL, &size, NULL, 0);  char *machine = (char *)malloc(size);... = sysc
  • data: { systemInfo:{}, },点击判断aaa: function(){ var that = this; wx.getSystemInfo({ success:function(res){ that.setData({ systemInfo:res, }) if(res.platform ...
1 2 3 4 5 ... 20
收藏数 156,713
精华内容 62,685
关键字:

11判断 ios