0

在我的应用程序中,我将名片显示为陈列室的详细信息。在那个细节中,我已经给用户提供了电话选项。

从 iPhone,我们可以通过提供如下代码来呼叫相应的号码..

 NSString* call = [NSString stringWithFormat:@"tel:%@",phone_number];
NSURL* url = [[NSURL alloc] initWithString:[call  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];

但是从 iPod 我想我们不能给各自的号码打电话。

现在我想为 iPhone 和 iPod 启动应用程序,但如果我将所需的设备功能设置为“电话”,那么应用程序将无法在 iPod 上运行。如果我没有提及所需的设备功能作为电话并按原样提交应用程序,Apple 审核流程是否可以?这将导致 iPod 上的电话呼叫按钮不起作用。

我的问题是如果用户将在 iPod 上安装应用程序,如何禁用电话按钮并以编程方式更改文本?

4

2 回答 2

1

您可以检查设备是否可以打开tel:URL,如果不能,则隐藏电话按钮。

BOOL canCall = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:123456789"]];
于 2012-04-27T07:49:57.177 回答
1

我相信如果你的应用程序优雅地降级,它就不会违反准则。如果您的应用完全拒绝在没有它的情况下运行,您只需要声明设备能力要求。

来自iOS App Programming Guide(强调我的):

如果您的应用需要特定设备功能的存在或不存在才能运行,您必须使用应用的 Info.plist 文件中的 UIRequiredDeviceCapabilities 键声明这些要求。在运行时,除非设备上存在声明的功能,否则 iOS 无法启动您的应用程序。此外,App Store 需要此信息,以便它可以生成用户设备要求列表并防止用户下载他们无法运行的应用程序

要确定应用程序是否可以响应tel://url,请参阅如何测试 IOS 设备是否具有电话功能? 您基本上用于canOpenURL确定是否可以拨打电话。

于 2012-04-27T07:52:08.247 回答