大胆的想法,大结果
提交您的详细建站或开发需求,与我们来一场轻松的远程会议
预约远程会议开发者在 App 中在集成微信 SDK 后,可调用接口实现,以下依次是文字、图片、音乐、视频、网页、小程序类型分享的示例。
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
title | NSString | 消息标题 | 限制长度不超过512Bytes |
description | NSString | 描述内容 | 限制长度不超过1KB |
thumbData | NSData | 缩略图的二进制数据 | 限制内容大小不超过32KB |
mediaObject | NSObject | 多媒体数据对象 | 可以为WXImageObject、WXMusicVideoObject、WXVideoObject、WXWebpageObject等 |
messageExt | NSString | 额外信息 | mediaObject为 WXMusicVideoObject 时,从微信音乐播放器内跳回,会携带该参数,长度不能超过2k。(iOS、Android双平台要一致) |
分享或收藏的目标场景,通过修改 SendMessageToWXReq 的 scene 字段实现。
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
text | NSString | 发送消息的文本内容 | |
bText | BOOL | 是否文本消息 | 发送消息的类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息 |
message | WXMediaMessage | 发送消息的多媒体内容| | |
scene | int | 发送的目标场景 | 分享到对话: WXSceneSession 分享到朋友圈: WXSceneTimeline 分享到收藏: WXSceneFavorite |
一、文字类型分享示例
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = YES;
req.text = @"分享的内容";
req.scene = WXSceneSession;
[WXApi sendReq:req];
二、图片类型分享示例
WXImageObject 多媒体消息中包含的图片数据对象
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
imageData | NSData | 图片的二进制数据 | 内容大小不超过10MB |
UIImage *image = [UIImage imageNamed:@"res2.png"];
imageData = UIImageJPEGRepresentation(image, 0.7);
WXImageObject *imageObject = [WXImageObject object];
imageObject.imageData = imageData;
WXMediaMessage *message = [WXMediaMessage message];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"res5"
ofType:@"jpg"];
message.thumbData = [NSData dataWithContentsOfFile:filePath];
message.mediaObject = imageObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneTimeline;
[WXApi sendReq:req];
三、音乐类型分享示例
WXMusicObject 多媒体消息中包含的音乐数据对象
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
musicUrl | NSString | 音频网页的 URL 地址 | 限制长度不超过10KB |
musicLowBandUrl | NSString | 供低带宽环境下使用的音频网页 URL 地址 | 限制长度不超过10KB |
musicDataUrl | NSString | 音频数据的 URL 地址 | 限制长度不超过10KB |
musicLowBandDataUrl | NSString | 供低带宽环境下使用的音频数据 URL 地址 | 限制长度不超过10KB |
WXMusicObject *musicObject = [WXMusicObject object];
musicObject.musicUrl = @"音乐url";
musicObject.musicLowBandUrl = musicObject.musicUrl;
musicObject.musicDataUrl = @"音乐数据url";
musicObject.musicLowBandDataUrl = musicObject.musicDataUrl;
WXMediaMessage *message = [WXMediaMessage message];
message.title = @"音乐标题";
message.description = @"音乐描述";
[message setThumbImage:[UIImage imageNamed:@"缩略图.jpg"]];
message.mediaObject = musicObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneSession;
[WXApi sendReq:req];
注意:分享至微信的音乐,直接点击好友会话或朋友圈下的分享内容会跳转至第三方 APP,点击会话列表顶部的音乐分享内容将跳转至微信原生音乐播放器播放。
四、视频类型分享示例
WXVideoObject 多媒体消息中包含的视频数据对象
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
videoUrl | NSString | 视频链接 | 限制长度不超过10KB |
videoLowBandUrl | NSString | 供低带宽的环境下使用的视频链接 | 限制长度不超过10KB |
注意:videoUrl和 videoLowBandUrl 不能同时为空
WXVideoObject *videoObject = [WXVideoObject object];
videoObject.videoUrl = @"视频url";
videoObject.videoLowBandUrl = @"低分辨率视频url";
WXMediaMessage *message = [WXMediaMessage message];
message.title = @"标题";
message.description = @"描述";
[message setThumbImage:[UIImage imageNamed:@"缩略图.jpg"]];
message.mediaObject = videoObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneSession;
[WXApi sendReq:req];
五、网页类型分享示例
WXWebpageObject 多媒体消息中包含的网页数据对象
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
webpageUrl | NSString | html链接 | 限制长度不超过10KB |
WXWebpageObject *webpageObject = [WXWebpageObject object];
webpageObject.webpageUrl = @"https://open.weixin.qq.com";
WXMediaMessage *message = [WXMediaMessage message];
message.title = @"标题";
message.description = @"描述";
[message setThumbImage:[UIImage imageNamed:@"缩略图.jpg"]];
message.mediaObject = webpageObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneSession;
[WXApi sendReq:req];
六、小程序类型分享示例
WXMiniProgramObject 多媒体消息中包含的小程序数据对象
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
webpageUrl | NSString | 兼容低版本的网页链接 | 限制长度不超过10KB |
userName | NSString | 小程序的userName | 小程序原始 ID 获取方法:登录小程序管理后台 - 设置 - 基本设置 - 帐号信息 |
path | NSString | 小程序的页面路径 | 小程序页面路径;对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar" |
hdImageData | NSData | 小程序新版本的预览图二进制数据,6.5.9及以上版本微信客户端支持 | 限制大小不超过128KB,自定义图片建议长宽比是 5:4。 |
withShareTicket | BOOL | 是否使用带 shareTicket 的分享 | 通常开发者希望分享出去的小程序被二次打开时可以获取到更多信息,例如群的标识。可以设置 withShareTicket 为true,当分享卡片在群聊中被其他用户打开时,可以获取到shareTicket,用于获取更多分享信息。详见小程序获取更多分享信息 ,最低客户端版本要求:6.5.13 |
miniprogramType | WXMiniProgramType | 小程序的类型,默认正式版,1.8.1及以上版本开发者工具包支持分享开发版和体验版小程序 | 正式版: WXMiniProgramTypeRelease; 测试版: WXMiniProgramTypeTest; 体验版: WXMiniProgramTypePreview; |
WXMiniProgramObject *object = [WXMiniProgramObject object];
object.webpageUrl = webpageUrl;
object.userName = userName;
object.path = path;
object.hdImageData = hdImageData;
object.withShareTicket = withShareTicket;
object.miniProgramType = programType;
WXMediaMessage *message = [WXMediaMessage message];
message.title = @"小程序标题";
message.description = @"小程序描述";
message.thumbData = nil; //兼容旧版本节点的图片,小于32KB,新版本优先
//使用 WXMiniProgramObject 的hdImageData属性
message.mediaObject = object;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneSession; //目前只支持会话
[WXApi sendReq:req];
七、音乐视频类型分享示例
该类型需要OpenSDK 1.8.9以及以上版本
WXMusicVideoObject 多媒体消息中包含的音乐视频数据对象
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
musicUrl | NSString | 音频网页的 URL 地址 | 必填,限制长度不超过10KB |
musicDataUrl | NSString | 音频数据的 URL 地址 | 必填,限制长度不超过10KB |
singerName | NSString | 歌手名 | 必填,限制长度不超过1KB |
duration | UInt32 | 音乐时长,歌曲时间 | 必填,不能为0,单位:毫秒, |
hdAlbumThumbData | NSData | 高清专辑封面图 | 选填,大小不超过1MB |
albumName | NSString | 音乐专辑名称 | 选填 |
songLyric | NSString | 歌词信息 LRC格式 | 选填,长度不能超过32K |
musicGenre | NSString | 音乐流派 | 选填 |
issueDate | UInt64 | 发行时间 Unix 时间戳 | 选填,单位:秒 |
identification | NSString | 音乐标识符 | 选填,建议填写,用户在微信音乐播放器内跳回应用时会携带该参数,可用于唯一标识一首歌,微信侧不理解(iOS、Android双平台要一致) |
WXMusicVideoObject *mvObject = [WXMusicVideoObject object];
mvObject.musicUrl = @"音乐url";
mvObject.musicDataUrl = @"音乐数据url";
mvObject.singerName = @"歌手名";
mvObject.duration = 60 * 1000; //音乐时长,毫秒
mvObject.hdAlbumThumbData = hdAlbumThumbData; //高清专辑封面图
mvObject.albumName = @"专辑名";
mvObject.musicGenre = @"音乐流派";
mvObject.issueDate = 1611116532; //发行时间 Unix 时间戳
mvObject.identification = @"test-identification"; //音乐标识符
WXMediaMessage *message = [WXMediaMessage message];
message.title = @"歌曲名称";//必填,不能为空
message.messageExt = @"额外信息"; //微信跳回时会带上
[message setThumbImage:[UIImage imageNamed:@"缩略图.jpg"]];
message.mediaObject = mvObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneSession;
[WXApi sendReq:req];
处理从微信音乐播放器内跳回:
#pragma mark - WXApiDelegate
- (void)onReq:(BaseReq *)req {
if ([req isKindOfClass:[LaunchFromWXReq class]]) {
LaunchFromWXReq *launchReq = (LaunchFromWXReq *)req;
NSString* messageExt = launchReq.message.messageExt; //分享到微信时的透传额外信息字字段
if ([launchReq.message.mediaObject isKindOfClass:WXMusicVideoObject.class]) {
WXMusicVideoObject *musicVideoObject = (WXMusicVideoObject *)launchReq.message.mediaObject;
NSString *identification = musicVideoObject.identification; //分享到微信时的音乐标识符字段
//应用可以根据 messageExt 和identification处理逻辑
}
}
}
上一篇: 接入微信分享及收藏怎么做
下一篇: 微信分享与收藏功能Android开发手册
派迪科技非常重视您的个人隐私,当您访问我们的网站 www.1t2.cn 时,请同意使用所有cookies 。
如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》
这些 cookies 是网站运行所必需的,不能在我们的系统中关闭。它们通常仅针对您所做的相当于服务请求的操作而设置,例如设置您的隐私首选项、登录或填写表格。您可以将浏览器设置为阻止或提醒您有关这些 cookies 的信息,但网站的某些部分将无法运行。这些 cookies 不存储任何个人身份信息。
派迪科技非常重视您的个人隐私,当您访问我们的网站www.1t2.cn时,请同意使用所有cookies 。
如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》