关于微博分享,本以为网上有文档有demo,会万无一失的,没想到关于网页的分享就出现了坑,需要分享一个网址,就是那种普通带文字、链接、图片的那种,照着demo的代码撸完,demo用的是WBWebpageObject,发现分享是分享出去了,但是图片没有了,网上也搜了下有没有遇到这个问题的,还真有,官网给出的FAQ如下:
FAQ LinkCard
- Q:什么是LinkCard
- A:http://open.weibo.com/wiki/%E7%A7%BB%E5%8A%A8%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%8E%A5%E5%85%A5
(在微博消息流内,分享一条链接,该链接将解析为包含一个对象数据的特殊短链,且该对象数据可以在微博消息流内显示并交互,这种形态就是微博消息流LinkCard解析。 )- Q:WBWebpageObject 分享之后不显示缩略图 是什么原因
- A:移动应用商务合作,移动SDK中的LinkCard和附件栏集成分享权限需要合作申请,商务对接请发邮件至:yuqing1@staff.sina.com.cn
- Q:我已经通过了商务合作,仍然不显示Card
- A:请填写平台-应用基本信息中的 安全域名,确定分享的链接处于安全域名之内,方能显示为Card
有网友说邮件巨慢,那怎么办,查看了一下SDK源码
/**
微博客户端程序和第三方应用之间传递的消息结构
一个消息结构由三部分组成:文字、图片和多媒体数据。三部分内容中至少有一项不为空,图片和多媒体数据不能共存。(新版的多图和视频属于图片数据,并且图片和视频也不能共存)
*/
@interface WBMessageObject : NSObject
/**
消息的文本内容
@warning 长度小于2000个汉字
*/
@property (nonatomic, strong) NSString *text;
/**
消息的图片内容
@see WBImageObject
*/
@property (nonatomic, strong) WBImageObject *imageObject;
/**
消息的多媒体内容
@see WBBaseMediaObject
*/
@property (nonatomic, strong) WBBaseMediaObject *mediaObject;
/**
消息的视频内容
@see WBVideoObject
*/
@property (nonatomic, strong) WBNewVideoObject *videoObject;
/**
返回一个 WBMessageObject 对象
@return 返回一个*自动释放的*WBMessageObject对象
*/
+ (id)message;
@end
imageObject和mediaObject无法共存,那就通过普通text和imageObject组合吧
message.text = [NSString stringWithFormat:@"%@ %@ %@",NSLocalizedString(shareDic[@"descp"], nil),shareDic[@"share_html"],NSLocalizedString(shareDic[@"title"], nil)];
WBImageObject *imageOb = [WBImageObject object];
imageOb.imageData = UIImageJPEGRepresentation(image, 1.0);
message.imageObject = imageOb;
勉强达到效果,但是链接的显示是文字是“网页链接” ,看来LinkCard是正道