1

我正在制作一个简单的应用程序,我希望允许用户通过该应用程序拨打特定的电话。

我们这里有很多特殊的数字,包括 * 和 # 来获取一些特定的数据。我开始编写应用程序并最初使用它来拨打电话

NSString * phonenumber = [NSString stringWithFormat:@"%@%@%@",
@"tel://*188*",
number.text,
@"#"];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phonenumber]];

虽然这种方法适用于普通数字,但特殊字符会被忽略,所以我冒险寻找解决方案,发现 CoreTelephony 框架提供了这种功能。

我的新方法包括

  • 将核心电话二进制文件添加到项目中
  • 引用标题
  • 使用 CTCallDialWithID(@"*000*0000#",-1); 打电话

现在一切正常,这是我的担忧

  • 我收到一条警告,上面写着“函数 CTCallDialwithID 的隐式声明在 c99 中无效”。我不知道我是否应该忽略这一点,或者我错过了什么?
  • 我一直在做一些关于核心电话的研究,有人说应用商店不会接受带有这个的应用,这是真的吗?答案似乎是 2 年前的,所以我不知道事情是否发生了变化,我的意思是苹果自己包含二进制文件,它不是像以前那样的私有框架,对吗?那么如果我使用这种方法,应用程序会在应用商店中被接受吗?

谢谢你

4

1 回答 1

1

Core Telephony框架是一个有效的框架。但是没有名为的公共方法或函数CTCallDialWithID。那一定是私有API。Apple 肯定会拒绝您的应用使用私有 API。您只能使用 Apple 记录的 Core Telephony API。任何其他用途都会导致拒绝(就像在这种情况下)。

于 2013-07-02T22:31:24.800 回答