美文网首页Swift编程iOS开发ios实用技术
原生分享(二):微信分享之使用分享

原生分享(二):微信分享之使用分享

作者: 小橘爷 | 来源:发表于2016-03-20 21:09 被阅读6958次

    如果觉得我写的还不错,请关注我的新浪微博@杨浩宇-小橘爷,最新文章即时推送~
    原生分享(一):微信分享之搭建分享环境
    原生分享(二):微信分享之使用分享

    微信分享之使用分享

    微信分享及收藏是指第三方 APP 通过接入该功能,让用户可以从 APP 分享文字、图片、音乐、视频、网页至微信好友会话、朋友圈或添加到微信收藏。

    微信分享及收藏功能已向全体开发者开放,开发者在微信开放平台帐号下申请 APP 并通过审核后,即可获得微信分享及收藏权限。

    微信分享及收藏目前支持文字、图片、音乐、视频、网页共五种类型。开发者在 APP 中在集成微信 SDK 后,可调用接口实现,以下依次是文字分享、图片分享、音乐分享、视频分享、网站分享的示例。

    分享或收藏的目标场景,通过修改 scene 场景值实现。
    发送到聊天界面——WXSceneSession
    发送到朋友圈——WXSceneTimeline
    添加到微信收藏——WXSceneFavorite

    文字类型分享示例

    // 第三方程序发送消息至微信终端程序的消息结构体
    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
    req.text = @"分享的内容";
    // 发送消息的类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息
    req.bText = YES;
    req.scene = WXSceneTimeline;
    [WXApi sendReq:req];
    

    图片类型分享示例

    // 用于微信终端和第三方程序之间传递消息的多媒体消息内容
    WXMediaMessage *message = [WXMediaMessage message];
    // 设置消息缩略图的方法
    [message setThumbImage:[UIImage imageNamed:@"图片.png"]];
    // 多媒体消息中包含的图片数据对象
    WXImageObject *imageObject = [WXImageObject object];
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"res1" ofType:@"jpg"];
    // 图片真实数据内容
    imageObject.imageData = [NSData dataWithContentsOfFile:filePath];
    // 多媒体数据对象,可以为WXImageObject,WXMusicObject,WXVideoObject,WXWebpageObject等。
    message.mediaObject = imageObject;
    
    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
    req.bText = NO;
    req.message = message;
    req.scene = WXSceneTimeline;// 分享到朋友圈
    [WXApi sendReq:req];
    

    音乐类型分享示例

    WXMediaMessage *message = [WXMediaMessage message];
    // 标题
    message.title = @"音乐标题";
    // 描述内容
    message.description = @"音乐描述";
    [message setThumbImage:[UIImage imageNamed:@"缩略图.jpg"]];
    
    // 多媒体消息中包含的音乐数据对象
    WXMusicObject *ext = [WXMusicObject object];
    // 音乐网页的url地址
    ext.musicUrl = @"音乐url";
    // 音乐lowband数据url地址
    ext.musicLowBandDataUrl = ext.musicUrl;
    // 音乐数据url地址
    ext.musicDataUrl = @"音乐数据url";
    // 音乐lowband数据url地址
    ext.musicLowBandDataUrl = ext.musicDataUrl;
    message.mediaObject = ext;
    
    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
    req.bText = NO;
    req.message = message;
    req.scene = WXSceneTimeline;
    
    [WXApi sendReq:req];
    

    注意:分享至微信的音乐,直接点击好友会话或朋友圈下的分享内容会跳转至第三方 APP,点击会话列表顶部的音乐分享内容将跳转至微信原生音乐播放器播放。

    视频类型分享示例

    WXMediaMessage *message = [WXMediaMessage message];
    message.title = @"标题";
    message.description = @"描述";
    [message setThumbImage:[UIImage imageNamed:@"缩略图.jpg"]];
    
    // 多媒体消息中包含的视频数据对象
    WXVideoObject *videoObject = [WXVideoObject object];
    // 视频网页的url地址
    videoObject.videoUrl = @"视频url";
    // 视频lowband网页的url地址
    videoObject.videoLowBandUrl = videoObject.videoUrl;
    
    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
    req.bText = NO;
    req.message = message;
    req.scene = WXSceneTimeline;
    
    [WXApi sendReq:req];
    

    网页类型分享示例

    WXMediaMessage *message = [WXMediaMessage message];
    message.title = @"标题";
    message.description = @"描述";
    [message setThumbImage:[UIImage imageNamed:@"res2.png"]];
    
    // 多媒体消息中包含的网页数据对象
    WXWebpageObject *webpageObject = [WXWebpageObject object];
    // 网页的url地址
    webpageObject.webpageUrl = @"https://opne.weixin.qq.com";
    message.mediaObject = webpageObject;
    
    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
    req.bText = NO;
    req.message = message;
    req.scene = WXSceneTimeline;
    
    [WXApi sendReq:req];
    

    以上就是微信分享的内容,不过作为过来人,还是劝告你们,能用还是用第三方吧,要是有很多种分享都要做还是很繁琐的~

    相关文章

      网友评论

      • LV大树:回调在哪里
      • LV大树:有些分享不用跳到微信就能分享的,怎么弄的?
        小橘爷:@FiredPeter 系统自带的分享不用跳
      • 午马丶:你好,怎么判断这个人是否分享成功了
        小橘爷:@A丶 是有分享成功的回调的,你可以找一下~
      • 比克大魔王_:刚刚去公司实习,公司的app微信分享不了了,以前可以分享的,代码没有更改,请问这种问题有可能是什么造成的。实在没遇过这种问题,如果作者知道,希望告知,感谢
        比克大魔王_: @最最强者 好,我明天去公司看看,感谢指点
        小橘爷:@最最强者 也许是URL Scheme没有没配置正确?或者是向微信注册的信息失效了?仔细看看报错信息,你可以找到答案的。
      • 一悻:音乐分享到微信好友失败了,可以播放点击也可以跳转到对应的网址,但是分享失败!知道什么原因吗?
        小橘爷:@一悻 这更不清楚了……我们一般都是分享一个网页出去。
        一悻:@杨浩宇 发现是musicUrl的问题,用官网示例中的musicUrl可以,用我自己的网页链接就不行,这还有什么要求的!我去!
        小橘爷:@一悻 母鸡啊……没见过此种情况。
      • Mars_pananting:你好,分享图片不跳转是怎么回事啊
        小橘爷:@ddb49e7d9f8b 并没有做过语音形式的分享:sweat:,要不你看一下文档,或者是SDK需要更新了吧?
        勤奋的张神:作者你好,我这边遇到一个奇怪的问题,我之前微信好友和微信朋友圈分享都正常,最近突然微信好友分享不能使用,分享过去显示重新发送的标志,对方也无法收到,但是微信分享回调errorCode为0,没有错误原因,请问这一般是什么原因造成的,我分享的是语音新闻,用音乐形式
        小橘爷:@丶普罗旺斯的狗尾巴草 你是说分享就不跳还是分享成功不跳到你分享的链接呢?

      本文标题:原生分享(二):微信分享之使用分享

      本文链接:https://www.haomeiwen.com/subject/ukvhlttx.html