在iPhone上通过短信发送位置信息或电子名片

时间:2011-09-11 23:15:57

标签: iphone objective-c ios

我可以通过将个人的位置通过电子邮件嵌入VCF来发送位置,方法是将其作为附件包含在内。我不知道如何通过短信做同样的事情。它仍在发送VCF格式,还是其他方法?我看到默认的短信可以做到这一点,它只是说“Dropped Pin”,如果你试图从地图应用程序发送一个掉落的引脚短信,它会看起来像一个联系信息屏幕。我基本上试图通过短信做类似的事情,但不知道如何格式化数据。

我发现此帖子类似:how to programmatically send business card messages to mobile phone via internet

我不知道放入SMS格式意味着什么。有什么想法吗?谢谢!

3 个答案:

答案 0 :(得分:5)

实际上它是MMS(附带vcf),无法从应用程序发送彩信。对不起:(

答案 1 :(得分:1)

您可以将vcf文件的内容粘贴到短信中......这就是旧手机解决此问题的方法。 Deniz是对的,没有办法从应用程序发送彩信,所以,你应该用旧的方式发送一个vcf文件。


所以可能性(我只知道一种可能性) 使用此方法将文件内容读取为字符串:

- (id)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error

然后您可以设置MFMessageComposeViewController的正文 我跳这很清楚。

答案 2 :(得分:0)

使用以下代码将vCard作为邮件的附件发送

if([MFMessageComposeViewController canSendText])
{
    MFMessageComposeViewController *msgController = [[MFMessageComposeViewController alloc] init] ;
    msgController.body = bodyString;
    if (phoneNumberArray != nil) {
        msgController.recipients = phoneNumberArray;
    }

    msgController.messageComposeDelegate = self;
    if([MFMessageComposeViewController canSendAttachments] && [MFMessageComposeViewController isSupportedAttachmentUTI:(NSString *)kUTTypeVCard]) {
        NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory,     NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];

        NSString * contactCardPath = [documentsDirectory stringByAppendingFormat:@"/%@",KVCardFileName]; //Path of vCard saved in your document directory
        if([[NSFileManager defaultManager]fileExistsAtPath:contactCardPath]) {
            NSData *vCardContact = [[NSFileManager defaultManager] contentsAtPath:contactCardPath];
            [msgController addAttachmentData:vCardContact typeIdentifier:(NSString *)kUTTypeVCard filename:KVCardFileName];
        }
    }


    [self presentViewController:msgController animated:YES completion:^{
        [SVProgressHUD dismiss];
    }];
}