【问题标题】:how to send sms via mobile number in iphone如何在iphone中通过手机号码发送短信
【发布时间】:2010-09-01 10:50:39
【问题描述】:

我在 iphone 中创建了一个音乐问候应用程序。我希望当用户在文本字段中输入他的手机号码并单击发送按钮时,应该从另一个视图中获取数据并将短信发送到用户的手机号码。

请任何人帮助我解决这个问题

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    Apple 仅支持通过他们提供的 UI 发送短信。为此,首先检查您是否可以发送短信。使用 NSClassFromString 检测 MFMessageComposeViewController 的存在,以防您部署到不支持此功能的旧版本的 iOS,并检查是否存在 MFMessageComposeViewController 是否存在 canSendText 返回 true。如果用户的设备没有短信功能,它将返回 false:

      if ([[NSClassFromString(@"MFMessageComposeViewController") canSendText]) {
        [self presentMessageComposeViewController];
      }  
    

    如果设备和操作系统支持它,现在它会从您的应用中的视图控制器呈现一个 MFMessageComposeViewController。此方法应在管理当前视图的 UIViewController 的子类中实现:

    -(void) presentMessageComposeViewController {
        id smsViewController = [[NSClassFromString(@"MFMessageComposeViewController") alloc] init];
            [smsViewController setTitle:NSLocalizedString(@"Your Title",nil)];
        [smsViewController setBody:NSLocalizedString(@"Your Message. urls work too www.example.com",nil)];
        [smsViewController setMessageComposeDelegate: (id)self];
        [self presentModalViewController:smsViewController animated:YES];
        [smsViewController release];
    }
    

    您还需要实现委托方法来关闭 MFMessageComposeViewController:

    - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
        [self dismissModalViewControllerAnimated:YES];
    }
    

    如果您需要使用自己的 UI,则必须与自己的服务器或可以为您发送短信的第三方服务通信。例如,使用 Twilio API(和 ASIHTTPRequest 项目):

    NSString *urlString = [NSString stringWithFormat:
    @"http://api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages,kYourTwillioSID];
    NSURL = [NSURL urlWithString:urlString];
    SIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:yourPhoneNumber forKey:@"TO"];
    [request setPostValue:@yourBody forKey:@"Body"];
    [request setFile:kYourOutgoingTwilioNumber forKey:@"From"];
    

    【讨论】:

    • 谢谢先生,我正在我的 iphone 上进行部署,最高版本为 3.1.2。是否支持短信发送功能
    • 查看 MFessageComposeViewController.h 我看到相关方法被标记为 __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0) 所以看起来您需要 4.0 或更高版本才能使用内置解决方案。使用 twilio.com 或其他服务适用于任何版本
    猜你喜欢
    • 2018-02-11
    • 2016-01-10
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多