1

iPhone の連絡先リストで選択した特定の番号にプログラムで SMS を送信するにはどうすればよいですか?

4

2 に答える 2

4

MFMessageComposeControllerあなたが探しているものです。

SMSを送信するには、次のようなものを見ています。

#import <MessageUI/MessageUI.h>
@interface myClass : NSObject <MFMessageComposeViewControllerDelegate>{
}
@end

@implementation

-(void)sendMessage{
    if([MFMessageComposeController canSendText]){
        MFMessageComposeController *smsComposer =
[[MFMessageComposeController alloc] init]; smsComposer.recipients = [NSArray arrayWithObject:@"12345678"]; smsComposer.body = @"SMS BODY HERE"; smsComposer.delegate = self; [self presentModalViewController:smsComposer animated:NO]; } else{ //You probably want to show a UILocalNotification here. } } - (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result{ /* You can use the MessageComposeResult to determine what happened to the
message. I believe it tells you about sent, stored for sending later, failed
or cancelled. */ [self dismissModalViewControllerAnimated:NO]; } @end

現時点では、これがアプリからSMSを送信する唯一の方法です。SMSアプリを開きたいだけでない限り。メッセージの本文について心配していない場合は、次のようにすることができます。

NSString *smsURL = @"sms:12345678";
NSURL *url = [NSURL URLWithString:smsURL];
[[UIApplication sharedApplication] openURL:url];
于 2011-02-01T06:03:15.793 に答える
1

ええと...ここで少し議論が役立つと思います。私は (おそらく誤って) 「... プログラムで SMS を送信する...」という質問を、MFMessageComposeViewController がポップアップする前に、舞台裏で SMS を送信することを意味します。

上記の回答の緑色のチェックマークは、それが質問の場合は不正解です。それが問題であると仮定し (きっと私だけではないと思います)、私がここにたどり着くのに費やした時間を節約するためにいくつかの弾丸を提供します.

  1. iOS ではこれを行うことができないというスタック内の静かな議論があります。そしてここ
  2. Android用のcordovaプラグインはそれをうまくやってくれます
  3. iOS 用の cordova プラグインはそうではありません (実行できないことを意味します)。
  4. 上記のコードが実行される方法はありません。一種の疑似コードです。presentModalViewController のanimated:NO は、vc のポップアップを防ぎますが、私は常に MessageCancelled で didFinishWithResult になります。
  5. Appleがこれを防ぐのは当然の権利です。
于 2012-12-27T10:48:07.380 に答える