0

「smsto:555-555-5555:Hello World」を指定して、SMS 本文にコンテンツを事前入力しようとしています。

私は調査を行いましたが、誰もがそれを行うことはできないと言いますが、現在、私の電話には「sms:555-555-5555:Hello world」を受信できる QR リーダーがあり、スキャンされた正しい電話番号がコンテンツに事前入力されています。 .

だから私の質問はです。どうすればいいですか?提供された URL スキームが本文を処理しないことは明らかです。体を事前に埋めるために他にどのような方法がありますか? それは明らかに QuickMark Reader で実行できます。

4

2 に答える 2

0

SMS の modalViewController を使用して、テキストの本文を埋めることができます。

  1. プロジェクトに MessageUI フレームワークを追加します。
  2. viewController を MFMessageComposeDelegate として設定します
  3. モーダル ビューを作成して表示します。

    -(void) showMessageComposerWithText:(NSString*)messageText telNumber:(NSString*)telNumber composeDelegate:(id)delegate
    {
        MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    
        if([MFMessageComposeViewController canSendText]){   
            controller.body = messageText;
            controller.recipients = [NSArray arrayWithObject:telNumber];
            controller.messageComposeDelegate = delegate;
    
            [delegate presentModalViewController:controller animated:YES];
        }
    }
    
于 2012-08-13T11:34:11.783 に答える
0

Apple Documentationによると、事前定義されたメッセージでメッセージ アプリを起動することはできません。

できることは、処理を自分で実装し、次のように URL を解析することです。

NSURL *url = /* the url you get from the web (in webview delegate) or after QR Code scan */;

if ([url.scheme isEqualToString:@"sms"]) // is it a sms ?
{
    if([MFMessageComposeViewController canSendText]) // can I send text message ?
    {   
        NSArray *parts = [url.absoluteString componentsSeparatedByString:@":"];
        NSString *messageText = parts.count == 3 ? [parts objectAtIndex:2] : @"";
        NSString *telNumber = parts.count >= 2 ? [parts objectAtIndex:1] : @"";
        MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
        controller.body = messageText;
        controller.recipients = [NSArray arrayWithObject:telNumber];
        controller.messageComposeDelegate = self;

        [self presentViewController:controller animated:YES completion:nil];
        [controller release];
    }
}

そしてほら!

于 2013-01-24T14:41:52.177 に答える