应用内发短信/邮件,messenger、line、whatsap
2017-04-14 本文已影响712人
BoomLee
代码:
#import "ViewController.h"
#import <MessageUI/MessageUI.h>
#import <WhatsAppKit.h>
@interface ViewController ()<MFMessageComposeViewControllerDelegate, MFMailComposeViewControllerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
#pragma mark - message
- (IBAction)message:(id)sender {
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController* composeVC = [[MFMessageComposeViewController alloc] init];
composeVC.messageComposeDelegate = self;
// Configure the fields of the interface.
composeVC.recipients = @[@"15001238888"];
composeVC.body = @"Hello from California!";
if ([MFMessageComposeViewController canSendSubject]) {//无效,UI没有显示,有待研究
NSLog(@"可以发送主题");
composeVC.subject = @"我是主题";
}
if ([MFMessageComposeViewController canSendAttachments]) {//无法正常显示,有待研究
NSLog(@"可以发送附件");
NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"QQ20170411" ofType:@"png"];
NSURL *url = [NSURL fileURLWithPath:imgPath isDirectory:NO];
BOOL success = [composeVC addAttachmentURL:url withAlternateFilename:@"越狱"];
NSLog(@"添加附件1:%@",@(success));
success = [composeVC addAttachmentData:[NSData dataWithContentsOfURL:url] typeIdentifier:@"image/png" filename:@"越狱"];
NSLog(@"添加附件2:%@",@(success));
}
if ([MFMessageComposeViewController isSupportedAttachmentUTI:@"image/png"]) {
NSLog(@"SupportAttachmentUTI");
}
// Present the view controller modally.
[self presentViewController:composeVC animated:YES completion:^{
}];
} else {
NSLog(@"不支持发送短信");
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];
}
}
#pragma mark - MFMessageComposeViewControllerDelegate
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
NSLog(@"%@", @(result));
switch (result) {
case MessageComposeResultCancelled:
{
}
break;
case MessageComposeResultSent:
{
}
break;
case MessageComposeResultFailed:
{
}
break;
}
[self dismissViewControllerAnimated:YES completion:^{
}];
}
#pragma mark - mail
- (IBAction)mail:(id)sender {
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController* composeVC = [[MFMailComposeViewController alloc] init];
composeVC.mailComposeDelegate = self;
// Configure the fields of the interface.
[composeVC setToRecipients:@[@"address@example.com"]];
[composeVC setCcRecipients:@[@"Ccaddress@example.com"]];
[composeVC setBccRecipients:@[@"Bccaddress@example.com"]];
[composeVC setSubject:@"Hello!"];
[composeVC setMessageBody:@"Hello from California!" isHTML:NO];
NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"QQ20170411" ofType:@"png"];
NSData *data = [NSData dataWithContentsOfFile:imgPath];
[composeVC addAttachmentData:data mimeType:@"image/png" fileName:@"越狱"];
// Present the view controller modally.
[self presentViewController:composeVC animated:YES completion:nil];
} else {
NSLog(@"Mail services are not available.");
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:"]];
}
}
#pragma mark - MFMailComposeViewControllerDelegate
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{
NSLog(@"%@", @(result));
switch (result) {
case MFMailComposeResultCancelled:
{
}
break;
case MFMailComposeResultSaved:
{
}
break;
case MFMailComposeResultSent:
{
}
break;
case MFMailComposeResultFailed:
{
}
break;
}
[self dismissViewControllerAnimated:YES completion:^{
}];
}
//messenger只能分享链接
- (void)MessengerAction{
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb-messenger://"]]) {
NSString *encodedValue= [self.sharedUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]];
NSString *url = [NSString stringWithFormat:@"fb-messenger://share/?app_id=com.blued.international&link=%@",encodedValue];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
} else {
NSLog(@"没有安装Messenger");
}
}
//line只能分享链接
- (void)LineAction{
NSString *urlString = [NSString stringWithFormat:@"line://msg/%@", [self.sharedUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURL *url = [NSURL URLWithString:urlString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}else{
NSLog(@"没有安装Line");
}
}
//whatsapp可以分享内容和链接
- (void)WhatsAppAction{
if ([WhatsAppKit isWhatsAppInstalled]) {
[WhatsAppKit launchWhatsAppWithMessage:self.sharedContentAndUrl];
} else {
NSLog(@"没有安装WhatsApp");
}
}
@end