如何检查iPad是否为iPad Pro

9
新的iPad Pro有不同的尺寸和分辨率。如果我根据屏幕宽度来检查,这样做是否正确?我还没有升级到Xcode 7.1,也没有设备,所以我还不能检查。这种检查方法可行吗?
if([UIScreen mainScreen].bounds.size.width>1024)
    {
        // iPad is an iPad Pro
    }

2
你忽略设备的方向。 - El Tomato
14个回答

0
你可以使用正则表达式在userAgent中检测iPad。
var isIPadPro = /Macintosh/.test(navigator.userAgent) && 'ontouchend' in document;

-1
你们开玩笑吗?你们的答案这么复杂。
if([UIScreen mainScreen].bounds.size.width >= 1024) {
    // iPad pro (or hypothetical/future huge-screened iOS device)
} else {
    // not iPad pro
}

如果你使用的是“>=”符号而不是“>”符号,它将完美地工作。

(好吧,我知道我不应该对你详尽、具体的答案如此轻描淡写。当然,有时特定的设备比屏幕尺寸更重要。但对于快速、明显的答案...!)


2
但是这在横屏模式下会失败。此时对于iPad,宽度为1024。 - Francis F

-2

iPad Pro存在一个bug,导致当前webview的用户代理出现错误。 用户代理看起来像这样:

Mozilla/5.0(iPhone; CPU iPhone OS9_1 like Mac OS X)AppleWebKit/601.1.46(KHTML,like Gecko)Mobile/13B143

我认为我们可以利用这个bug来检测在兼容模式下运行的应用程序中的iPad Pro。

-(BOOL)isiPadPro;
{
    UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];
    NSString* userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
    return [userAgent containsString:@"iPhone"] && ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);
}

-2

按照以下步骤进行检查:

if([[[UIDevice currentDevice] name] isEqualToString:@"iPad Pro"])
{
  //  do your stuff
}

2
这样做不起作用。这是设置中的名称,用户可以更改名称。 - Leo
如果这不起作用,那么您可以手动检查屏幕的高度和宽度,例如[UIScreen mainScreen].size.height == 2048,则为iPad Pro。 - Divyanshu Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接