0

私はiphoneにアプリを書いています。このアプリでは、電子メールとSMSを一定の間隔で自動的に番号と電子メールIDに送信する必要があります。しかし、しばらくしてその部分に移動するたびに、電子メールとSMSの両方のポップアップウィンドウが表示され、送信ボタンを押すと、電子メールまたはSMSのみが送信されます.

送信ボタンを何度も押す必要がなく、アクションが自動的に実行されるように、どうすれば自動化できますか。メールと SMS を送信するためのこのコードを見つけました。このコードは自分の目的のためだけに使用しています。これを自動化するように変更するにはどうすればよいですか。

//
//  MessageViewController.m
//  EmailExample
//
//  Copyright http://iphoneapp-dev.blogspot.com. All rights reserved.
//

#import "MessageViewController.h"


@implementation MessageViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.title = @"Message sending";
}

- (IBAction)btnEmail_Clicked:(id)sender
{
    MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
    controller.mailComposeDelegate = self;
    [controller setToRecipients:[NSArray arrayWithObject:@"user@gmail.com"]];
    [controller setSubject:@"iPhone Email Example Mail"];
    [controller setMessageBody:@"http://iphoneapp-dev.blogspot.com" isHTML:NO]; 
    [self presentModalViewController:controller animated:YES];
    [controller release];
}

- (IBAction)btnMessage_Clicked:(id)sender
{
    MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
    if([MFMessageComposeViewController canSendText])
    {
        controller.body = @"Hello Friends this is sample text message.";
        controller.recipients = [NSArray arrayWithObjects:@"+919999999999", nil];
        controller.messageComposeDelegate = self;
        [self presentModalViewController:controller animated:YES];
    }
}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {

    switch (result) {
        case MessageComposeResultCancelled:
            NSLog(@"Cancelled");
            break;
        case MessageComposeResultFailed: 
            NSLog(@"Failed");
            break;
        case MessageComposeResultSent:
            NSLog(@"Send");
            break;
        default:
            break;
    }

    [self dismissModalViewControllerAnimated:YES];
}

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {

    if (result == MFMailComposeResultSent) {
        NSLog(@"It's away!");
    }
    [self dismissModalViewControllerAnimated:YES];
}

- (IBAction)btnCall_Clicked:(id)sender
{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"+919999999999"]];
}

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [super dealloc];
}


@end
4

2 に答える 2

3

SMS可能であれば、プレミアムサービスにいくらか送って、ユーザーが高額の電話料金を請求する可能性がある場合は、できません。そのため、Appleはこれを許可していません。

SMS/ e-mailをサーバー経由で送信するか、電子メールの場合は。を介して直接送信することで、それを実行できる可能性がありますSMTP

于 2012-06-19T07:56:27.260 に答える
0
// Build request
NSString *urlString = [NSString stringWithFormat:@"https://%@:%@@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages", kTwilioSID, kTwilioSecret, kTwilioSID];
NSURL *url = [NSURL URLWithString:urlString];


ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

[request setPostFormat:NSUTF8StringEncoding];
[request setPostValue:kFromNumber forKey:@"From"];
[request setPostValue:kToNumber forKey:@"To"];
[request setPostValue:kMessage forKey:@"Body"];

[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestFail:)];

hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
//hud.mode = MBProgressHUDModeAnnularDeterminate;
hud.labelText = @"Please wait...";
hud.detailsLabelText = @"Sending message";
hud.delegate = self;
hud.square = NO;
hud.dimBackground = YES;

[request startAsynchronous];

このコードを使用して、必要に応じてパラメーターを変更できます。これが SMS の送信に役立つことを願っています。

于 2013-10-22T06:23:27.517 に答える