iOS社交分享Twitter、Facebook、拷贝到剪切板、LINE、及邮件
2024-08-22 22:45:22
准备
首先要引进例如以下三个framework:
MessageUI.framework
Social.framework
Accounts.framework
并在实现这几个方法的地方引入下面几个头文件
#import <MessageUI/MFMailComposeViewController.h>
#import <Social/Social.h>
#import <Accounts/Accounts.h>
Twitter及Facebook
当中urlStr为我分享的url字符串,你能够传你想分享的内容
//Twitter 、Facebook
- (void)shareUrl:(NSString *)urlStr ViaSLFrameWork:(NSString *)slType
{
//only support fecebook and twitter
if ([slType isEqualToString:SLServiceTypeFacebook] || [slType isEqualToString:SLServiceTypeTwitter])
{
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *socialComposer = [SLComposeViewController composeViewControllerForServiceType:slType];
[socialComposer addURL:[NSURL URLWithString:urlStr]];
[socialComposer setCompletionHandler:^(SLComposeViewControllerResult result)
{
NSString *outStr = [NSString new];
switch (result) {
case SLComposeViewControllerResultCancelled:
outStr = @"分享失败。";
break;
case SLComposeViewControllerResultDone:
outStr = @"分享失败! ";
break;
default:
break;
}
UIAlertView *myalertView = [[UIAlertView alloc]initWithTitle:nil
message:outStr
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[myalertView show];
}];
[self presentViewController:socialComposer animated:YES completion:nil];
}
}
}
复制内容到剪切板
//URL复制
- (void)pasteUrl:(NSString *)url
{
//复制文字
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString:url]; //复制图片
/*
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setData:UIImageJPEGRepresentation([UIImage imageNamed:@"account_icon_friend.png"] , 1.0) forPasteboardType:@"public.jpeg"];*/ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"内容已拷贝到剪切板" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
LINE
当中urlStr为我要分享的内容。分享的为Text
//LINE
- (void)shareWithLine:(NSString *)urlStr
{
//分享文字
NSString *contentType = @"text";
NSString *urlString = [NSString
stringWithFormat:@"line://msg/%@/%@",
contentType, [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
/******分享图片
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setData:UIImageJPEGRepresentation([UIImage imageNamed:@"account_icon_friend.png"] , 1.0) forPasteboardType:@"public.jpeg"]; NSString *contentType = @"image";
NSString *urlString = [NSString
stringWithFormat:@"line://msg/%@/%@",
contentType, pasteboard.name]; //从剪切板中获取图片,文字亦能够如此
*/
NSURL *url = [NSURL URLWithString:urlString];
LorwyLog(@"%@",url);
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"无效的url" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
}
urlStr邮件内容,kMailAddress为目的邮件地址
PS:self须要实现MFMailComposeViewControllerDelegate协议才会发送邮件后调用以下第二个方法
- (void)shareUrlMail:(NSString *)urlStr
{
if ([MFMailComposeViewController canSendMail])
{ MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
[mailViewController setSubject:kMailAddress];
[mailViewController setMessageBody:urlStr isHTML:NO]; mailViewController.mailComposeDelegate = self;
mailViewController.navigationBar.tintColor = [UIColor blackColor]; [self presentViewController:mailViewController animated:YES completion:nil];
}
} - (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissViewControllerAnimated:YES completion:nil];
}
最新文章
- *POJ 1222 高斯消元
- CNC Fanuc 设备数据采集
- 详解js中的闭包
- Unity3D 新人学习的一点感想
- 【Python学习笔记】字典操作
- ArcGIS 读写lyr层文件
- hdu2571命
- sql 将表B中不存在表A的数据 插入到表A中
- Java中的方法
- 201521123029《Java程序设计》第四周学习总结
- 分享基于分布式Http长连接框架--代码模型
- 【WebApi系列】浅谈HTTP
- 图像处理------透明混合 - Alpha Blending效果
- java原码、补码、反码总结
- Flask 系列之 部署发布
- linux下编译upx ucl
- java学习之—排序
- Java - 异常解析基础
- centos 6.3 64位下cpuminer +mining_proxy 挖掘莱特币(LTC)教程
- python2/3 中删除字典中value为空的键值对方法