《 IOS9 最新的分享(QQ、WeiXin、WeiBo)代码书写不超过10行 》
特点:代码简单,分享类型多。(音乐、视频、新闻、收藏。。。。)。
IOS9 以后,IOS APP 的开发分享,发生了很大改变。例如:分享时,网络要进行配置、导入的框架也有所变化、增加了白名单,等。这些新的变化导致,本来就不好做的分享变的更加难了。现在,本人就对分享进行了优化,让新学者能够快速的使用上 ios9 的分享。
第一步:我们看效果。
第二部:我们介绍如何快速,集成。导入必要的框架。如下:
第三步:修改info.plist.的内容。
1、 添加这个字段。(因为 IOS6 以后,在项目生成的时候就不带了)。
2、设置网络(如果,你只是单独建一个工程,否者,不需要这一步)。
3、添加白名单(有好多种,尽可能的添加)。
4、修改链接路径。
5、添加 URL Type 。
第四步:关键的代码缩写。
QQ: 关键代码。
1、使用代码
// 发起qq 分享
-(void)QQ_Send:(NSInteger)Index QQ_Type:(QQ_ShareType)Type{
ZSJ_QQ_Share * Share = [ZSJ_QQ_ShareZSJShareSdk:QQ_APPID];
if ([Share ZSJExamine]) {
// 分享的标题
Share.QQ_Title = _SourcesArray[Index][@"title"];
// 描述
Share.QQ_Describe = _SourcesArray[Index][@"miaoshu"];
// 分享网址
Share.QQ_Url = _SourcesArray[Index][@"url"];
// 分享的图片
Share.QQ_ShareImage = [UIImageimageNamed:[NSStringstringWithFormat:@"%@",_SourcesArray[Index][@"image"]]];
//初始化
[Share ZSJSendApiNewsObject:Type];
}else{
NSLog(@"你没有安装QQ");
}
}
// 结构消息的发送
-(void)ZSJSendApiNewsObject:(QQ_ShareType)Type{
QQApiNewsObject * ApiNewsObjec = nil ;
// 信息体的创建
if (self.QQ_ShareImage) {
NSData * QQ_Data = UIImageJPEGRepresentation(self.QQ_ShareImage,0.5);
ApiNewsObjec = [[QQApiNewsObjectalloc]initWithURL:[NSURLURLWithString:_QQ_Url]title:_QQ_Titledescription:_QQ_DescribepreviewImageData:QQ_Data targetContentType:QQApiURLTargetTypeNews];
}elseif (self.QQ_ShareImageUrl.length){
ApiNewsObjec = [[QQApiNewsObjectalloc]initWithURL:[NSURLURLWithString:_QQ_Url]title:_QQ_Titledescription:_QQ_DescribepreviewImageURL:[NSURLURLWithString:_QQ_ShareImageUrl]targetContentType:QQApiURLTargetTypeNews];
}
//创建发送平台
SendMessageToQQReq * QQReq = [SendMessageToQQReqreqWithContent:ApiNewsObjec];
// 调用发送体,开始发送
[self sendObject:Typetager:QQReq];
}
// 微信 分享
-(void)WeiXin_Send:(NSInteger)Index QQ_Type:(enumWXScene)Type{
ZSJ_WeiXin_Share * Share = [ZSJ_WeiXin_ShareZSJShareSdk:WeiXin_APPID];
if ([Share ZSJExamine]) {
// 分享的标题
Share.WeiXin_Title = _SourcesArray[Index][@"title"];
// 描述
Share.WeiXin_Describe =_SourcesArray[Index][@"miaoshu"];
// 分享网址
Share.WeiXin_Url = _SourcesArray[Index][@"url"];
// 分享的图片
Share.WeiXin_ShareImage = [UIImageimageNamed:[NSStringstringWithFormat:@"%@",_SourcesArray[Index][@"image"]]];
//初始化
[Share ZSJSendWebpageObject:Type];
}else{
NSLog(@"你没有安装QQ");
}
}
-(void)ZSJSendWebpageObject:(enumWXScene)Scene{
// 创建消息体对象
WXMediaMessage * MediaMessage = [WXMediaMessagemessage];
// 标题
MediaMessage.title = _WeiXin_Title;
// 描述
MediaMessage.description =_WeiXin_Describe;
// 图像
[MediaMessage setThumbImage:_WeiXin_ShareImage];
// 创建网络对象
WXWebpageObject * WebpageObjec = [WXWebpageObjectobject];
// 分享网址
WebpageObjec.webpageUrl = _WeiXin_Url;
// 对象的装载
MediaMessage.mediaObject = WebpageObjec;
[self SendWeiXin:MediaMessageScene:Scene];
}
-(void)SendWeiXin:(WXMediaMessage*)MediaMessage Scene:(enumWXScene)Scene{
// 创建发射架
SendMessageToWXReq * MessageToWXReq = [[SendMessageToWXReqalloc]init];
// 是文本还是多媒体
MessageToWXReq.bText = NO;
// 消息信息对象
MessageToWXReq.message = MediaMessage ;
// 分享的场景
MessageToWXReq.scene = Scene;
// 发起分享
[WXApi sendReq:MessageToWXReq];
}
// 微博分享
-(void)WeiBo_Send:(NSInteger)Index QQ_Type:(ObjectType)Type{
ZSJ_WeiBo_Share * Share = [ZSJ_WeiBo_ShareZSJShareSdk:WeiBo_APPID];
if ([Share ZSJExamine]) {
//回调网址
Share.WeiBo_RedirectURI =WeiBo_RedirectURI_STR;
// 分享的标题
Share.WeiBo_Title = _SourcesArray[Index][@"title"];
// 描述
Share.WeiBo_Describe = _SourcesArray[Index][@"miaoshu"];
// 分享网址
Share.WeiBo_Url = _SourcesArray[Index][@"url"];
// 分享的图片
Share.WeiBo_ShareImage = [UIImageimageNamed:[NSStringstringWithFormat:@"%@",_SourcesArray[Index][@"image"]]];
//拼接串
Share.WeiBo_CHFD = @"&";
// 媒体标记
Share.WeiBo_ObjectID = @"ZSJ";
//初始化
[Share ZSJSendObject:Type];
}else{
NSLog(@"你没有安装QQ");
}
}
2、隐藏代码。
// 创建发送对象
-(void)ZSJSendObject:(ObjectType)ObjectType{
//创建认证对象
WBAuthorizeRequest * AuthorizeRequest = [WBAuthorizeRequestrequest];
// 授权回调网址
AuthorizeRequest.redirectURI =_WeiBo_RedirectURI;
//scope
AuthorizeRequest.scope = _WeiBo_Scope;
// 构建分享的对象
WBSendMessageToWeiboRequest * ToWeiboRequest = [WBSendMessageToWeiboRequestrequestWithMessage:[selfmakeMessageObjec:ObjectType]];
ToWeiboRequest.userInfo =@{@"ShareMessageFrom":@"SendMessageToWeiboViewController",
@"Other_Info_1": [NSNumbernumberWithInt:123],
@"Other_Info_2":@[@"obj1", @"obj2"],
@"Other_Info_3":@{@"key1": @"obj1", @"key2": @"obj2"}};
// 创建发送对象
[WeiboSDK sendRequest:ToWeiboRequest];
}
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
if ([[urlabsoluteString] hasPrefix:@"tencent"]) {
return [TencentOAuth HandleOpenURL:url];
}elseif ([[url absoluteString]hasPrefix:@"wb"]){
return [WeiboSDKhandleOpenURL:url delegate:self];
}
return NO;
}
// 注意这个必须实现。
- (void)didReceiveWeiboResponse:(WBBaseResponse *)response
{
NSLog(@"微博分享成功");
}
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
if ([[urlabsoluteString] hasPrefix:@"tencent"]) {
return [TencentOAuth HandleOpenURL:url];
}elseif ([[url absoluteString]hasPrefix:@"wb"]){
return [WeiboSDKhandleOpenURL:url delegate:self];
}
return NO;
}
下载地址:https://github.com/zhoushuangjian/ZSJShareSDK