iOS社交分享Twitter、Facebook、拷贝到剪切板、LINE、及邮件

准备

首先要引进例如以下三个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];
    }
}

MAIL

urlStr邮件内容,kMailAddress为目的邮件地址

PS:self须要实现MFMailComposeViewControllerDelegate协议才会发送邮件后调用以下第二个方法

//MAIL
- (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];
}
时间: 2025-01-17 12:22:51

iOS社交分享Twitter、Facebook、拷贝到剪切板、LINE、及邮件的相关文章

iOS社交分享Twitter、Facebook、复制到剪切板、LINE、及邮件

准备 首先要引进如下三个framework: MessageUI.framework Social.framework Accounts.framework 并在实现这几个方法的地方引入以下几个头文件 #import <MessageUI/MFMailComposeViewController.h> #import <Social/Social.h> #import <Accounts/Accounts.h> Twitter及Facebook 其中urlStr为我分享的

iOS 第三方分享Twitter授权的错误解决(友盟分享)

1.导入sdk,在程序中导入相应的系统库,请参见友盟的第三方分享文档.这里主要说明当一切都弄好了的时候,一运行报coredata命名错误, 解决步骤如下: 一定要让Twitter中包含它 , 2.步骤如下

VC拷贝字符串到剪切板

char a[15] ="中华人民共和国"; DWORD dwLength = 14; // 要复制的字串长度 HANDLE hGlobalMemory = GlobalAlloc(GHND, dwLength + 1); // 分配全局内存并获取句柄 LPBYTE lpGlobalMemory = (LPBYTE)GlobalLock(hGlobalMemory); // 锁定全局内存 //for (int i = 0; i<dwLength; i++) //{ // 将&qu

使用clipboard.js复制页面内容到剪切板

最近在做一个的智能客服Web端浏览器应用,其中有一项需求是客户在获取系统返回的 答案后点击“复制答案”按钮将答案复制到系统剪切板.本以为这是一个小case,但是发现如果 要对各种主流浏览器都有良好的兼容性并不简单.原因在于出于安全原因,大多数现代浏览 器都未提供通用的剪贴板复制接口(或即便有,也默认被禁用). 上网搜索了一下,现有的方案大致有两种: 一:使用原生javascript中window.clipboardData实现复制到剪贴板功能: 二:使用Zero Clipboard库: 在尝试了

使用python实现将截图上传到七牛服务器,并将七牛生成的外部链接添加的剪切板的功能

目的:在使用markdown来记录文档时,不必每次都将截图存到文档中,只需将图片链接存放到文档中,此时就想到了需要使用云服务器和自动上传文件的功能 OS: Ubuntu 15.10 version 0.1: 工具:截图工具shutter, 剪切板操作工具: xsel 源代码: 1 #!/usr/bin/python 2 import time ##时间模块,使用时间戳生成唯一的文件名 3 import commands ##python中的执行shell命令的模块 4 import os ##同

剪切板操作SetClipboardData GetClipboardData

转载:http://blog.csdn.net/ycc892009/article/details/6521565 Code: 01.// Funciton: 02.// 拷贝数据到剪切板 03.// 从剪切板粘贴数据 04.// Data:2011/4/8 05.#include <windows.h> 06.#include <stdio.h> 07.void SetDataToClip(void) 08.{ 09. // 打开剪贴板 10. if (!OpenClipboar

dos复制到剪切板

CLIP 描述: 将命令行工具的输出重定向到 Windows 剪贴板.这个文本输出可以被粘贴 到其他程序中. 参数列表: /?                  显示此帮助消息. 示例: DIR | CLIP          将一份当前目录列表的副本放入 Windows 剪贴板. CLIP < README.TXT   将 readme.txt 的一份文本放入 Windows 剪贴板. eg: 将F:\1.txt拷贝到剪切板: type F:\1.txt | clip 然后,将剪切板内容复制到

IOS系统自带社交分享

很多APP中都带有社交分享功能,通过用户的分享,让更多地人去了解和使用这个APP,目前社交分享是移动互联网应用程序推广的最重要手段之一,国内较或的分享平台有微信,IOS6后苹果集成的新浪微博,还有IOS7后集成的腾讯微博. 在IOS中,实现社交分享可以自己编写各个平台的分享代码,但代码量较多,也可以利用IOS自带的Social.framework,更可以利用第三方的分享框架,如友盟,ShareSDK等.接下来先介绍一个系统自带的分享功能. 打开设备或模拟器的偏好设置,可以看到如下 系统需要先登录

分享代码 Twitter,Facebook,Google,Yahoo,Linkedined

1: 分享到twitter的代码 <a href="http://twitter.com/home?status=<?php the_permalink(); ?> <?php the_title(); ?>" title="分享到 Twitter" target="_blank" rel="nofollow"> Twitter </a> 2: 分享到Facebook的代码 &l