因为一开始是按照新浪的demo写的,但是demo也存在这个问题当在未安装客户端的情况下分享的链接不会显示。解决办法 :
WBSendMessageToWeiboRequest 类有一个WBMessageObject 的类 这个类的text是分享的内容 在这里设置分享内容 将分享的url加进来。代码如下
- (void)shareButtonPressed{ AppDelegate *myDelegate =(AppDelegate*)[[UIApplication sharedApplication] delegate]; WBAuthorizeRequest *authRequest = [WBAuthorizeRequest request]; authRequest.redirectURI = kRedirectURI; authRequest.scope = @"all"; WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:[self messageToShare] authInfo:authRequest access_token:myDelegate.wbtoken]; request.userInfo = @{ @"ShareMessageFrom": @"SendMessageToWeiboViewController", @"Other_Info_1": [NSNumber numberWithInt:123], @"Other_Info_2": @[@"obj1", @"obj2"], @"Other_Info_3": @{ @"key1": @"obj1", @"key2": @"obj2"}}; // request.shouldOpenWeiboAppInstallPageIfNotInstalled = NO; //判断是否存在客户端 不存在就这样写 if (![WeiboSDK isWeiboAppInstalled]) { request.message.text = [NSString stringWithFormat:@"%@%@",NSLocalizedString(@"分享网页标题", nil),@"http://sina.cn?a=1"]; } [WeiboSDK sendRequest:request];}
messageToShare方法
- (WBMessageObject *)messageToShare{ WBMessageObject *message = [WBMessageObject message]; if (self.textSwitch.on) { message.text = NSLocalizedString(@"测试通过WeiboSDK发送文字到微博!", nil); } if (self.imageSwitch.on) { WBImageObject *image = [WBImageObject object]; image.imageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image_1" ofType:@"jpg"]]; message.imageObject = image; } if (self.mediaSwitch.on) { 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:@"image_2" ofType:@"jpg"]]; webpage.webpageUrl = @"http://sina.cn?a=1"; message.mediaObject = webpage; } return message;}
当然如果在 messageToShare 整合一下代码也可以 不再举例了。