【发布时间】:2014-12-12 20:17:00
【问题描述】:
我有一个应用程序,在联系我们部分允许用户根据设备给我们打电话。如果是 iPhone,它会显示号码以及呼叫按钮。如果是 iPod Touch,它只会显示数字。但自从更新到 iOS8 后,iPod Touch 也被识别为 iPhone 并显示“通话”按钮。有人知道如何解决这个问题吗?任何帮助表示赞赏。
【问题讨论】:
标签: ios objective-c iphone ios8 ipod-touch
我有一个应用程序,在联系我们部分允许用户根据设备给我们打电话。如果是 iPhone,它会显示号码以及呼叫按钮。如果是 iPod Touch,它只会显示数字。但自从更新到 iOS8 后,iPod Touch 也被识别为 iPhone 并显示“通话”按钮。有人知道如何解决这个问题吗?任何帮助表示赞赏。
【问题讨论】:
标签: ios objective-c iphone ios8 ipod-touch
您可以查看iOS设备是否可以打开电话链接:
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:+11111"]])
如下文所述:
【讨论】:
如下进行设备类型检查:
- (NSString *) deviceType{
NSString *devicePlatform = [self deviceModel];
if ([devicePlatform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
if ([devicePlatform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
if ([devicePlatform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";
if ([devicePlatform isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";
if ([devicePlatform isEqualToString:@"iPad1,1"]) return @"iPad";
if ([devicePlatform isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G";
return devicePlatform;
}
- (NSString *) deviceModel{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithUTF8String:machine];
free(machine);
return platform;
}
【讨论】: