分享前置工作:
在正式上线的时候,小程序需要进行微信认证,否则分享功能会报分享功能被禁止的错误。
微信小程序:
分享:
onShareAppMessage(Object object)
监听用户点击页面内转发按钮(button 组件 open-type="share")或右上角菜单“转发”按钮的行为,并自定义转发内容。
注意:只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮
Page({
onShareAppMessage() {
//自己写的逻辑 Start
const promise = new Promise(resolve => {
setTimeout(() => {
resolve({
title: '自定义转发标题'
})
}, 2000)
})
//自己写的逻辑 End
return {
title: '这是一个标题',//转发标题
path: '/page/user?id=123',//转发路径
imageUrl: 'https://...png',//使用默认截图
promise //可不设置,详细作用见官方文档
}
}
})
分享至朋友圈:
onShareTimeline()
监听右上角菜单“分享到朋友圈”按钮的行为,并自定义分享内容。
注意:只有定义了此事件处理函数,右上角菜单才会显示“分享到朋友圈”按钮
本接口为 Beta 版本,暂只在 Android 平台支持
Page({
onShareTimeline() {
return {
title: '这是一个标题',//自定义标题,即朋友圈列表页上显示的标题
query: `name=${name}&age=${age}`,//当前页面路径携带的参数
imageUrl: 'https://...png',//自定义图片路径
}
}
})
是否显示当前页面的转发按钮
wx.showShareMenu(Object object)
注意事项
- "shareAppMessage"表示“发送给朋友”按钮,"shareTimeline"表示“分享到朋友圈”按钮
- 显示“分享到朋友圈”按钮时必须同时显示“发送给朋友”按钮,显示“发送给朋友”按钮时则允许不显示“分享到朋友圈”按钮
本接口为 Beta 版本,暂只在 Android 平台支持
wx.showShareMenu({
withShareTicket: true,//是否使用带 shareTicket 的转发详情
menus: ['shareAppMessage', 'shareTimeline']//需要显示的转发按钮名称列表
})
uniapp
微信分享
uni.share({
provider: "weixin",//分享服务提供商,过 uni.getProvider 获取可用的分享服务商
scene: "WXSceneSession",//场景,可分享至微信,朋友圈,微信收藏
type: 0,//分享形式,如图文、纯文字、纯图片、音乐、视频、小程序等。默认图文 0
href: "http://uniapp.dcloud.io/",//跳转链接
title: "uni-app分享",//分享内容的标题
summary: "赶紧跟我一起来体验小程序的分享吧!",//分享内容的摘要
imageUrl: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni@2x.png",//图片地址
success: function (res) {
console.log("success:" + JSON.stringify(res));
},
fail: function (err) {
console.log("fail:" + JSON.stringify(err));
}
});
scene 值说明
值 | 说明 |
WXSceneSession | 分享到聊天界面 |
WXSceneTimeline | 分享到朋友圈 |
WXSceneFavorite | 分享到微信收藏 |
type 值说明
值 | 说明 | provider 支持度 |
0 | 图文 | weixin、sinaweibo |
1 | 纯文字 | weixin、qq |
2 | 纯图片 | weixin、qq |
3 | 音乐 | weixin、qq |
4 | 视频 | weixin、sinaweibo |
5 | 小程序 | weixin |
QQ分享
uni.share({
provider: 'qq',
summary: "我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!",
success: function (res) {
console.log("success:" + JSON.stringify(res));
},
fail: function (err) {
console.log("fail:" + JSON.stringify(err));
}
});