在不选择通用应用程序的情况下检测 iPhone 或 iPad

Detecting if iPhone or iPad without opting for Universal App

我真的希望它能工作:

if UIDevice.current.userInterfaceIdiom == .pad {
    print("iPad")
} else {
    print("not iPad")
}

但是,即使我使用的是 iPad,我的应用程序也只打印 "not iPad"。我将设备(在部署信息下)设置为 iPhone。如果我将其更改为 Universal 它可以工作,但我不想要一个通用应用程序,我只想能够检测是否正在使用 iPhone 或 iPad(即使该应用程序是用于iPhones,由于兼容模式,它在 iPads 上仍然可以是 运行。

那么如何在不将我的应用更改为通用应用的情况下检测设备是 iPad 还是 iPhone?谢谢

您可以做的一件事是获取页面的屏幕内宽度。电话通常低于 786 像素,您可以将其他所有内容称为 iPad。使用可以做这样的事情

    var width = window.innerWidth;
    If (width > 786px) {
        print(‘ipad’);
    } else {
        print(‘not ipad’)
    }

您可以查看型号:

if UIDevice.current.model.hasPrefix("iPad") {
     print("it is an iPad")
} else {
     print("it is not an iPad")
}

iPhone 只有应用程序可以下载到 iPad。但在当前情况下,我们没有更小分辨率的设备(部署目标:9)。

OBJ-C

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone && [[[UIDevice currentDevice] model] hasPrefix:@"iPad"]) {
        // This app is an iPhone app running on an iPad
        NSLog(@"This app is an iPhone app running on an iPad");
    }

Swift

if UIDevice.current.userInterfaceIdiom == .phone, UIDevice.current.model.hasPrefix("iPad") {
    print("iPad")
}

试试这个,

print("Model - \(UIDevice.current.model)")