如何通过 iPhone SDK 以编程方式执行以下操作:

  1. 通过 iPhone SDK 以编程方式拨打电话号码

  2. 绕过 拨号/取消 iPhone 弹出的提示

  3. 拨打号码后发送额外的 DTMF,就像将暂停编程到普通电话中一样。

我知道你可以做一个 tel:// 呼叫,但问题是它会弹出拨号/取消提示,之后它会阻止发送任何未来的 DTMF。

有帮助吗?

解决方案

iPhone SDK 不允许您直接访问拨号号码(想象一下,如果您的手机上安装了一个“不良”程序,并在静音状态下拨打了按分钟付费的号码,因此您没有注意到)。

但是,如果您使用电话链接,那么您应该能够向其发送插入暂停的“,”字符。

因此,要拨打 555-1212,然后等待 4 秒钟,然后在按键音上输入 12345#,您将使用 tel:5551212,,12345#

查看https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html

其他提示

不知道为什么大家都说不能...你 !

NSString *phoneNumber = @"15555551212";
NSString *dtmfAfterPickup = @"1234";
NSString *telString = [NSString stringWithFormat:@"tel:%@,%@", phoneNumber, dtmfAfterPickup];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];

这将拨打 电话号码 绕过拨号/取消提示...接听电话后 1 秒, 接听后的 dtmf 字符串将被自动拨号。

这是个好主意 检测设备是否支持通话

根据上面的 Adam's Apple 开发人员链接,有一个 RFC 链接详细解释了 iPhone 支持的电话链接方案的不同选项 -

http://www.ietf.org/rfc/rfc2806.txt

这至少允许您在 URL 中插入带有“p”的暂停,但每个 RFC 指定了很多选项(但不是全部都是必需的)。还有什么作用?

我尝试在 iPhone 上使用 CoronaSDK 和 openurl API。效果非常好!做就是了:system.openURL("电话:[电话号码],123").您可以使用附加逗号等待更多。使用 Corona SDK/iOS7 进行测试。

实际上,我只是尝试了以下 555-555-4822 EXT 8030

即使在按下拨号键后,它似乎也会传输一些音调(p 的数量代表延迟的秒数)。然而,远端并未按预期响应音调,因此仍然存在问题。

然而,这确实有效,尽管它更容易出现计时问题电话:555-555-4822、8030。连接后仅暂停一秒(,, 为两秒),然后播放 8030 提示音

你不能这样做。SDK 不允许您以这种详细程度控制电话功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top