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';
分享到微信、微博等带弹层的功能 参数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支持
不带弹层直接跳转到微信分享的参数结构如下:
参数 | 类型 | 说明 |
---|---|---|
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,同时该消息不再支持长按转发,不过可以进入页面后转发 |
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>