微信、QQ、微博都差不多 ,前两篇已经和清楚了 微博就简单记录一下
配置
-
添加白名单以及URL scheme
白名单.png
![](https://img.haomeiwen.com/i1342568/1679d6a1a248bc49.png)
-
添加依赖库
依赖库.png
-
选择Build Setting,在"Other Linker Flags"中加入"
94E50B50-967F-4DAB-A21F-6A6414F93A32.png
-all_load"
注册
/**
设置WeiboSDK的调试模式
当开启调试模式时,WeiboSDK会在控制台输出详细的日志信息,开发者可以据此调试自己的程序。默认为 NO
@param enabled 开启或关闭WeiboSDK的调试模式
*/
[WeiboSDK enableDebugMode:YES];
[WeiboSDK registerApp:kAppKey];
这里如果有多种分享途径 需判断分享的是微信、QQ、微博。。。。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [WeiboSDK handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [WeiboSDK handleOpenURL:url delegate:self ];
}
回调(官方demo里 这里写的比较详细 可以参考)
- (void)didReceiveWeiboResponse:(WBBaseResponse *)response {
if ([response isKindOfClass:WBSendMessageToWeiboResponse.class])
{
if (response.statusCode == 0) {
// 新浪微博分享成功
}
else {
//新浪微博分享失败
}
}
else if ([response isKindOfClass:WBAuthorizeResponse.class]){
if (response.statusCode == 0) {
// 新浪微博授权成功
}
else {
// 新浪微博授权失败
}
}
}
授权
WBAuthorizeRequest *request = [WBAuthorizeRequest request];
request.redirectURI = kRedirectURI;
request.scope = @"all";
request.userInfo = @{@"SSO_From": @"SendMessageToWeiboViewController",
@"Other_Info_1": [NSNumber numberWithInt:123],
@"Other_Info_2": @[@"obj1", @"obj2"],
@"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
[WeiboSDK sendRequest:request];
此处注意一下 ,如果是安装了微博客户端的 授权跳转后应该是这样
![](https://img.haomeiwen.com/i1342568/b0889d0c2485cd03.png)
但是 跳转后确实这样
![](https://img.haomeiwen.com/i1342568/492e7da043178f81.png)
可以检查一下是否没有添加白名单 (我就是忘了添加,跳转后一直是这个页面。。。)
退出
AppDelegate *myDelegate =(AppDelegate*)[[UIApplication sharedApplication] delegate];
[WeiboSDK logOutWithToken:myDelegate.wbtoken delegate:self withTag:@"user1"];
分享
文字
WBMessageObject *message = [WBMessageObject message];
message.text = NSLocalizedString(@"林俊杰最新专辑《伟大的渺小》", nil);
WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message];
[WeiboSDK sendRequest:request];
图片
UIImage * image = [UIImage imageNamed:@"小瓶子"];
WBMessageObject *message = [WBMessageObject message];
message.text = @"小瓶子";
// 消息的图片内容中,图片数据不能为空并且大小不能超过10M
WBImageObject *imageObject = [WBImageObject object];
imageObject.imageData = UIImageJPEGRepresentation(image, 0.5);
message.imageObject = imageObject;
WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message];
[WeiboSDK sendRequest:request];
链接
WBWebpageObject *webpage = [WBWebpageObject object];
webpage.objectID = @"identifier1";
webpage.title = NSLocalizedString(@"伟大的渺小", nil);
webpage.description = [NSString stringWithFormat:NSLocalizedString(@"分享网页内容简介-%.0f", nil), [[NSDate date] timeIntervalSince1970]];
webpage.thumbnailData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"小瓶子" ofType:@"png"]];
webpage.webpageUrl = @"https://m.weibo.cn/5360551125/4199268648046669";
message.mediaObject = webpage;
WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message];
[WeiboSDK sendRequest:request];
这只是列举了其中的两种,具体的看文档。
多废话几句,如果在各种信息都配置好了,却点击分享后没有跳转,可以检查一下参数是否符合要求,很多都是有大小、非空等限制。
另外,在分享链接的时候,如果跳转了但是 有文字没有链接的话,可以检查一下thumbnailData 图片是否存在,以及大小是否符合要求。。。。。
不仅仅是微博,微信、QQ等 都存在参数有限制的要求,如果分享失败,可以往这方面检查一下。。。。。。。
网友评论