2016-09-23 59 views
5

我使用iOS 10的CallKit接收来电。我的应用程序中的电话不是来自“电话号码”或“电子邮件地址”,而是来自我协议中的内部标识符。因此,我使用CXHandleTypeCXHandleTypeGeneric(而不是CXHandleTypePhoneNumberCXHandleTypeEmailAddress)报告来电,使用自定义字符串作为句柄的“值”。如何拦截来自CallKit来电屏幕的“消息”?

当我报告来电,并且电话未锁定时,用户通过按钮“提醒我”,“留言”,“拒绝”和“接受”看到来电屏幕。如果用户按下“消息”按钮并选择以下菜单中的一个消息字符串,它会尝试通过消息应用程序将该字符串作为文本消息发送,目标是我用作“值”的自定义字符串“的电话处理,就好像它是一个电话号码或电子邮件地址,即使它不是。这通常会导致邮件由于目标无效而无法发送,但根据字符串的不同,它可能实际发送到用户不想发送到的有效目标;两个结果都不好。

我正在查看是否有方法让邮件没有通过邮件应用程序发送(这在我的情况下总是不正确),而是被传递到我的应用程序,以便我可以将邮件发送到通过我的内部协议正确调用。


更新:的“提醒我”和“消息”按钮不再出现在iOS 10.1

+0

已解决此案? ,否则我们怎么能隐藏消息/提醒我按钮。 – Madhu

+0

我可以在接听电话时打开我的自定义应用吗?请知道我,因为我没有iOS开发经验。但很想知道这一点。 – Choxx

回答

1

的iOS 10.1贝塔1改变了这种行为,以不再显示“提醒我”或“ Message“按钮,因此我鼓励您使用该Beta操作系统重新测试您的应用程序。

如果您希望来自应用的来电能够继续显示“消息”按钮,但是您的应用收到消息请求而不是系统的本机消息应用,请file a bug与Apple联系请求此功能。

+0

我可以打开我的自定义应用程序接听来自本地屏幕的电话吗?请知道我,因为我没有iOS开发经验。但很想知道这一点。 – Choxx

+0

如果设备在通过CallKit应用程序到达并且用户应答来电时被锁定,设备将保留在本机来电UI中,因为设备仍处于锁定状态,iOS无法在前台启动应用程序。但是,如果设备在来电呼叫到达时已经解锁,那么一旦呼叫被应答,用户就会直接进入该应用。 –

+0

**一旦应答呼叫,用户将直接进入应用程序**您是指我的VoIP应用程序正在呼叫呼叫​​屏幕?我检查过fb使者。当出现呼叫屏幕时点击视频按钮,用户将被带到fb信使视频通话屏幕。意味着我们可以覆盖通话屏幕上的按钮?我不是从iOS背景。所以请让我知道这些查询 – Choxx