iOS 分享 --微博

微信、QQ、微博都差不多 ,前两篇已经和清楚了 微博就简单记录一下

配置

  • 添加白名单以及URL scheme


    白名单.png
F61BF6CC-CA7F-43E2-98B3-349AF16029DD.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];

此处注意一下 ,如果是安装了微博客户端的 授权跳转后应该是这样


1.png

但是 跳转后确实这样


2.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等 都存在参数有限制的要求,如果分享失败,可以往这方面检查一下。。。。。。。

你可能感兴趣的:(iOS 分享 --微博)