用shareSDK实现的简单分享

第一步:将ShareSDK导入到你的工程中

然后需要在工程的AppDelegate.m中导入所需要的头文件

比如:

#import <ShareSDK/ShareSDK.h>
#import "WeiboApi.h"
#import “WXApi.h"

第二步:在下面方法中添加如下代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [ShareSDK registerApp:@"2864c8d42dd3”];  //@“2864c8d42dd3”为ShareSDK官网中添加应用后得到的AppKey

添加相应的应用需要获得相应应用的APPkey和APPSecret

//添加新浪微博应用 注册网址 http://open.weibo.com
    [ShareSDK connectSinaWeiboWithAppKey:@"1028290959"
                               appSecret:@"337c15ce9b1885cf307fd4f5bc5a9594"
                             redirectUri:@"http://www.sina.com"];
   
//    //添加腾讯微博应用 注册网址 http://dev.t.qq.com
    [ShareSDK connectTencentWeiboWithAppKey:@"801528473"
                                  appSecret:@"9101e92b599a40712212547be6977c2a"
                                redirectUri:@"http://www.shishangmao.com"
                                   wbApiCls:[WeiboApi class]];
   
    //添加微信应用 注册网址 http://open.weixin.qq.com
    [ShareSDK connectWeChatWithAppId:@"wx8216675fb452a3d6"
                           wechatCls:[WXApi class]];
    //连接邮件
    [ShareSDK connectMail];
 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    self.viewController = [[ViewController alloc] init];
    self.window.rootViewController = self.viewController;
   
    [self.window makeKeyAndVisible];
    return YES;
}

注:以下代码为使用sso授权时添加(若不使用程序运行后将会跳到相应的web页进行授权提示)

使用SSO授权不需要重复输入新浪微博用户名、密码,只需要一步操作,直接点击授权按钮即可完成授权,增强了操作简便性及帐号安全性。SDK中默认是开启SSO授权的,对需要实现SSO的平台进行一下配置就可以使用了。(就是说如果你安装了相应应用的客户端软件之后,只需要登录一次 ,程序运行经过一次授权之后,再运行的话就不会重新提示授权,而是可直接发布(即使工程卸载重装也会记录相应授权的信息))

由于SSO需要跳转到客户端进行授权验证,因此需要处理返回消息。在*AppDelegate.m(*代表你的工程名字)文件中加入如下方法:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

{

return [ShareSDK handleOpenURL:url

wxDelegate:self];

}

- (BOOL)application:(UIApplication *)application

openURL:(NSURL *)url

sourceApplication:(NSString *)sourceApplication

annotation:(id)annotation

{

return [ShareSDK handleOpenURL:url

sourceApplication:sourceApplication

annotation:annotation

wxDelegate:self];

}

使用sso授权也需要添加相应应用的URL Schemes 如:新浪微博。。。。。

新浪微博

打开*-Info.plist(*代表你的工程名字)。找到URL types配置项(如果没有则新增),展开URL types – URL Schemes,在URL Schemes下分别各新增一项用于新浪微博的Scheme(如果不添加则会导致法返回应用)。其填写格式为:wb+appKey(你在新浪微博申请的AppKey), 如:wb2279784657。如图所示:

第三步:分享内容

进行内容分享首选需要构造一个内容对象,该对象用于指定哪些内容需要分享到社会化平台中。然后再通过showShareActionSheet方法进行分享。 分享内容一般在 viewDidAppear 事件之后、响应用户动作的方法中进行,如:响应按钮按下的方法中。 代码如下:

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@“1"  ofType:@"jpg"];

//构造分享内容

///#begin zh-cn
/**
 *@brief创建分享内容对象,根据以下每个字段适用平台说明来填充参数值
 *
 *@param content 分享内容(新浪、腾讯、网易、搜狐、豆瓣、人人、开心、有道云笔记、facebook、twitter、邮件、打印、短信、微信、QQ、拷贝)
 *@param defaultContent 默认分享内容(新浪、腾讯、网易、搜狐、豆瓣、人人、开心、有道云笔记、facebook、twitter、邮件、打印、短信、微信、QQ、拷贝)
 *@param image 分享图片(新浪、腾讯、网易、搜狐、豆瓣、人人、开心、facebook、twitter、邮件、打印、微信、QQ、拷贝)
 *@param title 标题(QQ空间、人人、微信、QQ)
 *@param url 链接(QQ空间、人人、instapaper、微信、QQ)
 *@param description 主体内容(人人)
 *@param mediaType 分享类型(QQ、微信)
 *
 *@return分享内容对象
 */
///#end
///#begin en
/**
 *@briefCreate share content object. based on the following description of each field to fill the parameter values
 *
 *@param content Share content string.(Sina Weibo、Tencent Weibo、NetEase Weibo、Sohu Weibo、Douban、RenRen、KaiXin、YouDaoNote、Facebook、Twitter、Mail、Print、SMS、WeChat、QQ、Copy)
 *@param defaultContent Default share content string.(Sina Weibo、Tencent Weibo、NetEase Weibo、Sohu Weibo、Douban、RenRen、KaiXin、YouDaoNote、Facebook、Twitter、Mail、Print、SMS、WeChat、QQ、Copy)
 *@param image Image attachment object.(Sina Weibo、Tencent Weibo、NetEase Weibo、Sohu Weibo、Douban、RenRen、KaiXin、Facebook、Twitter、Mail、Print、WeChat、QQ、Copy)
 *@param title Title string.(QZone、RenRen、WeChat、QQ)
 *@param url Url string.(QZone、RenRen、Instapaper、WeChat、QQ)
 *@param description Description string(RenRen)
 *@param mediaType MediaType(QQ、WeChat)
 *
 *@returnShare content object.
 */
///#end
id<ISSContent> publishContent = [ShareSDK content:@"分享内容"

defaultContent:@"默认分享内容,没内容时显示"

image:[ShareSDK imageWithPath:imagePath]

title: @"北京时尚猫科技有限公司"

url: @"http://www.shishangmao.cn/"

description:@"这是一条测试信息"

mediaType:SSPublishContentMediaTypeNews];
////********************************************************************************************************************
若想要自定义授权界面可实现如下
    //创建容器
    id<ISSContainer> container = [ShareSDK container];
    [container setIPadContainerWithView:sender arrowDirect:UIPopoverArrowDirectionUp];
   
    //通过viewDelegate:参数修改授权界面的导航栏背景
    //    id<ISSAuthOptions> authOptions = [ShareSDK authOptionsWithAutoAuth:YES
    //                                                         allowCallback:YES
    //                                                         authViewStyle:SSAuthViewStyleFullScreenPopup
    //                                                          viewDelegate:_appDelegate.viewDelegate
    //                                               authManagerViewDelegate:nil];
   
    //powerByHidden:这个参数是去掉授权界面Powered by ShareSDK的标志
    id<ISSAuthOptions> authOptions = [ShareSDK authOptionsWithAutoAuth:YES      allowCallback:NO
                                                                scopes:nil powerByHidden:YES followAccounts:nil authViewStyle:SSAuthViewStyleFullScreenPopup viewDelegate:nil authManagerViewDelegate:nil];
   
    //通过shareViewDelegate:参数修改分享界面的导航栏背景
    id<ISSShareOptions> shareOptions = [ShareSDK defaultShareOptionsWithTitle:@"内容分享"
                                                              oneKeyShareList:[NSArray defaultOneKeyShareList]
                                                               qqButtonHidden:YES
                                                        wxSessionButtonHidden:YES
                                                       wxTimelineButtonHidden:YES
                                                         showKeyboardOnAppear:NO
                                                            shareViewDelegate:nil
                                                          friendsViewDelegate:nil
                                                        picViewerViewDelegate:nil];

****************************************************************************************///
///#begin zh-cn
/**
 *@brief显示分享菜单
 *
 *@param container 用于显示分享界面的容器,如果只显示在iPhone客户端可以传入nil。如果需要在iPad上显示需要指定容器。
 *@param shareList 平台类型列表
 *@param content 分享内容
 *  @param  statusBarTips   状态栏提示标识:YES:显示; NO:隐藏
 *  @param  authOptions 授权选项,用于指定接口在需要授权时的一些属性(如:是否自动授权,授权视图样式等),默认可传入nil
 *  @param  shareOptions    分享选项,用于定义分享视图部分属性(如:标题、一键分享列表、功能按钮等),默认可传入nil
 *  @param  result  分享返回事件处理
 */
///#end
///#begin en
/**
 *@briefShow share menu.
 *
 *@param container A container for the share view, if only displayed in the iPhone can pass nil. If you want to display on the iPad needs to be specified container.
 *@param shareList Platform type list.
 *@param content Share content object.
 *  @param  statusBarTips   The status bar Tip flag. YES indicates display. NO indicates hidden.
 *  @param  authOptions Authorized options,Used to authorization for custom configuration(Such as: whether the automatic authorization, authorization view style, etc.)Default nil.
 *  @param  shareOptions    Share options,Used to share for custom configuration(Such as: title, one key sharing, function buttons, etc.)Default nil.
 *  @param  result  Result handler.
 */
///#end
[ShareSDK showShareActionSheet:nil(container)

shareList:nil

content:publishContent

statusBarTips:YES

authOptions:nil (authOptions)

shareOptions: nil (shareOptions)

result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOLend) {

if (state == SSResponseStateSuccess)

{

NSLog(@"分享成功");

}

else if (state == SSResponseStateFail)

{

NSLog(@"分享失败,错误码:%d,错误描述:%@", [error errorCode], [error errorDescription]);

}

}];

第四步:实现评论功能

用shareSDK实现的简单分享,布布扣,bubuko.com

时间: 2024-08-10 17:19:49

用shareSDK实现的简单分享的相关文章

Unity3d sharesdk微信朋友圈分享

最近在安卓上做Unity3d开发,尝试使用sharesdk来开发社交分享功能,查看了官方案例和别人的例子之后,在自己的应用上链接死活分享不上去,百度了半天也没有找到解决方案.最后google到了答案,原来是在Assets/Plugins/Android/asset目录下的ShareSDK.xml这个文件中,我使用的拷贝下来的例子里面,BypassApproval设置成了true,也就是声明绕过微信验证,导致只能分享图片和文字,将BypassApproval改成false以后就可以了. 最后附上g

敏捷实践简单分享补充

一.体现产品价值—项目立项会项目立项的价值和意义,不用说应该大家都能理解,对于研发是成本部门,我们希望把更多的资源和资金投入到有价值的事情上,带来更大的回报.作为公司会衡量诸多项目中,进行项目集管理和项目组合管理,合理的调配资源和资金.项目立项评审,让大家想清楚项目开展的要做的事项,对项目价值有更清晰的认识.1.产品必要性及依据;(1).产品的市场分析.竞品分析.市场潜力.前景和收益:2.产品目标和研发内容;(1).产品的定位.价值.技术储备.产品功能结构脑图:3.产品主要交付路线图;(1).产

与你共享,简单分享。ShareREC手游录像SDK公开下载!

与你共享,简单分享.ShareREC手游录像SDK公开下载,Mob团队开放工具包,让开发变得更简单.猛戳下载地址 http://rec.mob.com/

android利用Intent.ACTION_SEND实现简单分享功能

android中,利用Intent.ACTION_SEND可以实现简单"分享"功能,可以分享文字.图片等到其他应用,像微信.QQ.短信等. MainActivity.java文件: package com.example.androidtest; import java.io.File; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.app.

关于微信ShareSDK的简单分享

项目最终阶段,也就面临着将要被各种第三方ShareSDK狂虐的节奏了,果不其然,导入WXApi文件,刚刚注册,运行,直接5个报红,接下来,肯定就是各种找呀找呀找解决方法 1. 关于第三方SDK 报 真机调试的话是不会报这个错误的 library not found for -lWeChatSDK clang: error: linker command failed with exit code 1 (use -v to see invocation) [当然先前报的不是这个,现在没还原得出来]

LR11 socket通信测试简单分享

前一段时间做一个转发工具压力测试,只是提供IP和端口,下面贴出来与大家分享,不足之处还请指正: 整个脚本写法很简单,大体来说,分三个步骤: 步骤1:建立到服务器端连接 rc = lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=127.0.0.1:8808", LrsLastArg); 注:rc=0则表示建立通讯成功 步骤2:发送报文和接收报文 lrs

关于ShareSDK默认的新浪微博分享编辑框超过140字的问题

现象如图:右下角有个剩下字数统计.但是当变成负数的时候居然还是可以分享成功. 于是就得限制负数不能分享. 解决方案: 在cn.sharesdk.onekeyshare.theme.classic包的EditPage.java里,在onClick()里的 <span style="font-size:18px;">if (v.equals(llTitle.getBtnRight())) 后面<span style="font-family: Arial, He

一个vue项目的简单分享

回首用vue已经2个多月了,今年7月底根据vue社区提供的api写了一个小移动端的小dom 通过这个项目也让我更深入的了解了vue(组件之间的通讯,计算属性,数据绑定.数据驱动....),用数据驱动型的框架做项目好处就是基本上不需要自己操作dom,框架会通过数据改变帮你最优的操作,也让你开发更加迅速 vue数据的更新: 获取数据(转换数据) →绑定事件→渲染dom →监听事件→改变数据(计算)→重新绑定事件→改变dom 首先vue会遍历一遍你定义的 data 然后通过 这个ES5的属性(Obje

简单分享javascript、jquery实用demo

前端追随的javascript.jquery javascript判断H5页面离开 1 function onbeforeunloadFn(){ 2 console.log('离开页面'); 3 //...code 4 } 5 function showOnbeforeunload(flags){ 6 if(flags){ 7 document.body.onbeforeunload = onbeforeunloadFn; 8 }else{ 9 document.body.onbeforeunl