友盟分享UShare 分享文件到微信
新风作浪看到友盟社区一个帖子,说友盟分享文档没有分享文件的示例或说明,然后去看了SDK提供的接口,写了一些示例。
https://community.umeng.com/topic/view/622ae087fb24130bf76d0e0a
UMShareFileObject *fileObject = [UMShareFileObject shareObjectWithTitle:@"分享的PDF名称.pdf" descr:@"不用写,写了也不显示" thumImage:nil]; fileObject.fileData = [NSData dataWithContentsOfURL:路径或地址]; // 如果无法打开微信检查这里的fileData 是否位nil
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObjectWithMediaObject:fileObject];
[[UMSocialManager defaultManager] shareToPlatform:UMSocialPlatformType_WechatSession messageObject:messageObject currentViewController:self completion:^(id result, NSError *error) { if (!error) { NSLog(@"result -> %@",result); } }];
|
微信SDK暴露的接口
@interface WXFileObject : NSObject
/*! @brief 返回一个WXFileObject对象 * * @note 返回的WXFileObject对象是自动释放的 */ + (WXFileObject *)object;
/** 文件后缀名 * @note 长度不超过64字节 */ @property (nonatomic, copy) NSString *fileExtension;
/** 文件真实数据内容 * @note 大小不能超过10M */ @property (nonatomic, strong) NSData *fileData;
@end
|
友盟分享的接口
@interface UMShareFileObject : UMShareObject
/** 文件后缀名 * @note 长度不超过64字节 */ @property (nonatomic, retain) NSString *fileExtension;
/** 文件真实数据内容 * @note 大小不能超过10M */ @property (nonatomic, retain) NSData *fileData;
/** 文件的名字(不包含后缀) * @note 长度不超过64字节 */ @property (nonatomic, retain) NSString *fileName;
@end
|
实际操作结果发现 UMShareFileObject
的 fileExtension和fileName 是可以不传的,但是在构造初始化UMShareFileObject的时候,title字段一定要带后缀,否则分享到微信文件会是一个问号,不能直接打开。
UMShareFileObject *fileObject = [UMShareFileObject shareObjectWithTitle:@"分享的PDF名称.pdf" descr:@"不用写,写了也不显示" thumImage:nil];
|
其实使用系统UIActivityViewController
分享还是最香的。