QShare 大客户端分享API

API兼容性:
QRN:v1.2.0
iOS:80011120
Android:60001139

新增的微信小程序类型的消息以及 QShare.wechatShare 的 API兼容性:

QRN:v2.3.0
iOS:80011137
Android:60001168

文档里标注的 v3.4.0 对应的修改 API 兼容性对应的版本:

QRN:v3.4.0
iOS:80011154
Android:60001213

QShare 提供了大客户端的分享功能,用来呼出分享的弹出框,可以设置分享弹出框中显示的分享类型。

引入

import { QShare } from 'qunar-react-native';

数据结构

QShare.doShare

分享到微信、微博等带弹层的功能 参数QShareParam结构如下:

QShareParam = {
    //分享内容设置
    com: {
        title: '去哪儿网',
        desc: '聪明你的旅行',
        link: 'http://app.qunar.com/',
        imgUrl: 'http://source.qunarzz.com/common/hf/logo.png', //必传
        miniUserName: 'gh_7ffb9c5d761f',
        miniPath: 'home/pages/index?navigateTo=%2Fcommon%2Fpages%2Fsearch%2Findex%3FbizType%3Dtrain',
        shareHdImageURL: 'http://source.qunarzz.com/common/hf/logo.png', //3.4.0版本开始这个字段可以不传,为了兼容之前的版本,可以和上面的`imgUrl`都传为同一个值
        miniProgramType:'release',//3.4.0新增参数,可选参数,并且此参数线上必须不能传,分享微信小程序类型,release为正式版,test为开发版,preview为体验版,
        imgCompress: 'original', //3.4.0新增参数,这个字段是分享的图片是否压缩,传original为原图不压缩,不传或传其余值都会按默认压缩,
        withShareTicket:'false', // 5.4.6新增参数,`'true'`时用户从微信群中打开小程序时支持可以带上群ID,同时该消息不再支持长按转发,不过可以进入页面后转发
        headImageUrl:'https://picbed.qunarzz.com/0a228c332ce0168790e57947d362313e.png'// 支持带顶部运营图
    },

    //单独设置分享内容,可选,下面为单独设置的朋友圈分享内容
    [QShare.wechatTimeline]: {
        title: '朋友圈',
        link: 'http://www.qunar.com/',
        imgUrl: 'http://img1.qunarzz.com/p/p78/1601/74/93df1e3741e903f7.jpg'
    },
    
    //设置需要分享的渠道,可选,没有这个属性的话是默认显示全部可用的分享渠道
    types: [
        QShare.wechatFriends,//微信小程序类型消息只能分享到会话
        QShare.email,
        QShare.wechatTimeline,
        QShare.sinaWeibo,
    ]
}

默认支持的分享类型有:

QShare.wechatTimeline,   //朋友圈
QShare.wechatFriends:,   //微信好友
QShare.sinaWeibo,        //新浪微博
QShare.tencentWeibo,     //腾讯微博
QShare.sms,              //短信
QShare.mail,             //邮件
QShare.qunarFriend,      //去哪儿好友
QShare.wechatFav,        //微信收藏,仅Android支持
QShare.QQZone,           //QQ空间,仅Android支持
QShare.QQFriend,         //QQ好友,仅Android支持
QShare.QQFav,            //QQ收藏,仅Android支持

QShare.wechatShare

不带弹层直接跳转到微信分享的参数结构如下:

参数 类型 说明
title string 分享标题
desc string 分享描述内容
link string touchUrl
thumbImgUrl string 缩略图
imageUrl string 纯图片分享时的大图
wxScene string 渠道类型(1.wechatFriends 分享到会话;2. wechatTimeline 分享到朋友圈;3. wechatFav 收藏-仅iOS平台支持)
wechatShareType string 分享内容类型(1. shareText 纯文本分享;2. shareWebpage 网页分享;3. shareImage 纯图片分享;4. shareMiniProgram 微信小程序类型消息分享)
miniUserName string 分享微信小程序类型消息的小程序id
miniPath string 分享微信小程序类型消息的小程序的页面路径
hdImageData string 分享到微信小程序的高清图二进制流
miniProgramType string 分享到微信小程序的类型,release为正式版,test为开发版,preview为体验版, 线上必须不能传这个参数
imgCompress string 图片是否被压缩,original表示原图不被压缩,不传或者其余值都按照默认方式压缩
withShareTicket string 是否使用带 shareTicket 的转发详情,必选:否,默认值为'false'。备注:'true'时用户从微信群中打开小程序时支持可以带上群ID,同时该消息不再支持长按转发,不过可以进入页面后转发

每种 wechatShareType 所必须传的参数 (√)表示必传 (×)表示不能传 (--)表示可选

shareText shareWebpage shareImage shareMiniProgram
title ×
desc × ×
link × ×
thumbImgUrl × ×
imageUrl × × ×
wxScene √ (微信小程序类型消息只能分享到微信为6.5.6及以上版本的 wechatFriends,分享到低版本微信、微信朋友圈(wechatTimeline)、iPad 以及 iPod效果与shareWebpage类型一致)
miniUserName × × ×
miniPath × × ×
hdImageData × × × √(3.4.0开始的版本可以不传,直接使用imageUrl即可,为了兼容旧版本的是需要填这个字段的)
miniProgramType × × × -- (并且线上版本必须不能传,3.4.0新增参数)
imgCompress × -- -- -- (3.4.0新增参数)
withShareTicket × × × √ (5.4.6新增参数) 是否使用带 shareTicket 的转发详情,必选:否,默认值为'false'。备注:'true'时用户从微信群中打开小程序时支持可以带上群ID,同时该消息不再支持长按转发,不过可以进入页面后转发

API

QShare.doShare ( shareParam:QShareParam, callBack: function, errCallBack: function)
根据 QShareParam 呼出分享的dialog,用户分享成功走callBack回调,回调的数据中包含了用户分享的类型,分享失败走errCallBack **注意:在有些情况下可能 callBack 和 errCallBack 均不会调用!**

使用说明

import { QShare } from 'qunar-react-native';

   /**
   * 弹出弹层,选择某个平台分享
   * QShare.doShare
   **/

<Text
    onPress = {() => {
        QShare.doShare({
            com: {
                title: '去哪儿网',
                desc: '聪明你的旅行',
                link: 'http://app.qunar.com/',
                imgUrl: 'http://source.qunarzz.com/common/hf/logo.png',
                headImageUrl:'https://picbed.qunarzz.com/0a228c332ce0168790e57947d362313e.png',
            },
            //单独设置朋友圈分享内容
            [QShare.wechatTimeline]: {
                title: '朋友圈',
                link: 'http://www.qunar.com/',
                imgUrl: 'http://img1.qunarzz.com/p/p78/1601/74/93df1e3741e903f7.jpg'
            },
        }, (data) => {
            //分享成功 data.sharedType 为成功分享的类型
            data.sharedType 
        }, (err) => {
            //分享失败
            alert(JSON.stringify(err))
        })
    }}>点击分享</Text>

  /**
   * 分享到微信,不弹出弹层,直接跳转到微信分享
   * QShare.doShare 
   **/

<TouchableHighlight
    style={styles.wrapper}
    onPress={() => {
      QShare && QShare.wechatShare({
          title:'去哪儿网',
          desc:'聪明你的旅行',
          link:'http://app.qunar.com/',
          thumbImgUrl:'http://s.qunarzz.com/open_m_train/active/robshare/share.png',
          miniUserName:'gh_7ffb9c5d761f',
          miniPath:'home/pages/index?navigateTo=%2Fcommon%2Fpages%2Fsearch%2Findex%3FbizType%3Dtrain',
          withShareTicket:'false',
          wxScene:'wechatFriends',
          wechatShareType:'shareMiniProgram',
      },(data) => {
          alert(JSON.stringify(data));
      }, (err) => {
          alert(JSON.stringify(err))
      })
}}>
    <View style={styles.button}>
        <Text>点击分享微信小程序类型消息到微信会话</Text>
    </View>
 </TouchableHighlight>