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

时间:2018-09-05 12:10:53

标签: ios iphone user-interface ipad ios-universal-app

我真的希望它能工作:

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

但是,即使我使用的是iPad,我的应用程序也只能打印“不是iPad”。我已将“设备”(在“部署信息”下)设置为iPhone。如果将其更改为“通用”,则可以使用,但我不希望使用通用应用程序,而只是想检测是否正在使用iPhone或iPad(即使该应用程序适用于iPhone,由于兼容模式,它仍然可以在iPad上运行。

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

4 个答案:

答案 0 :(得分:2)

您可以检查模型:

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

答案 1 :(得分:0)

您可以做的一件事就是获取页面的内部屏幕宽度。手机通常低于786像素,您可以使用iPad拨打其他电话。使用可以做类似的事情

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

答案 2 :(得分:0)

仅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");
    }

快速

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

答案 3 :(得分:0)

尝试一下,

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

enter image description here