【问题标题】:MFMessageComposeViewController: How to restrict to send message as Cellular Message not as iMessageMFMessageComposeViewController:如何限制将消息作为蜂窝消息而不是 iMessage 发送
【发布时间】:2013-03-13 07:21:35
【问题描述】:

我使用MFMesageComposeViewController 发送消息,这给我带来了麻烦。

当我向多个收件人发送消息时,无论 iMessages 是从设置中启用还是禁用都可以正常工作。但是,当我向单个联系人发送消息并且 iMessages 从设置中启用时,它会在 Message App 中给我 “Delivery failed” 并将其显示为 iMessage.

如何强制MFMessageComposeViewController 将其作为蜂窝消息发送。

我的代码是:

[[[MFMessageComposeViewController alloc] init] autorelease];
if ([MFMessageComposeViewController canSendText]) {
    controller.body = @"Sample Text Message";
    controller.recipients = [NSArray arrayWithObject:@"XXXXXXXXXXXX"];
    controller.messageComposeDelegate = self;
    }

【问题讨论】:

    标签: iphone ios objective-c xcode mfmessagecomposeview


    【解决方案1】:

    简而言之 - 你不能。如果在设备上启用了 iMessage 并且收件人可用作 iMessage 客户端,则消息将作为 iMessage 发送。此行为是 iOS 自己定义的,无法更改。

    【讨论】:

    • 不,我正在对那些未注册为 Apple ID 或 iMessage ID 的号码进行测试
    • 没关系。在您的代码中,您也无法确定手机号码的状态 - 它是 iMessage 还是仅限蜂窝消息客户端。
    • 我认为这可能是最新版本 iOS 中的一个错误,之前如果我在火车时间发送“短信”,它会向非 iMessage 用户发送短信,现在它作为 iMessage 发送无论收件人是否有 iMessage。我必须进入消息,然后以 SMS 的形式重新发送。
    • @DanClarke,我认为您应该将其报告为错误。
    • 我认为这绝对是一个错误。
    【解决方案2】:

    Apple 没有提供任何方法来检测消息是作为“iMessage”还是“SMS”发送的。

    此外,如果您没有连接到互联网,您的消息将不会作为 iMessage 发送。如果您的互联网连接速度较慢,您的消息将自动作为 SMS 发送。

    如果收件人可用作 iMessage 客户端并且您的设备上启用了 iMessage,那么您的消息将作为 iMessage 发送。如果此时您没有连接到互联网,那么“发送”按钮将被自动禁用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 2023-03-19
      • 1970-01-01
      • 2013-03-04
      • 2018-08-16
      相关资源
      最近更新 更多