1. uniapp 微信小程序分享
在微信小程序中,點(diǎn)擊右上角的三個點(diǎn)按鈕,會出現(xiàn)一個彈窗,在彈窗中可以看到三個分享操作:轉(zhuǎn)發(fā)到朋友、分享到朋友圈、分享到企業(yè)微信,這三個分享默認(rèn)情況下都是灰色的,代表不可用,當(dāng)需要使用分享功能時可通過代碼實現(xiàn)
轉(zhuǎn)發(fā)到朋友:可以將小程序分享給微信好友、微信群
分享到朋友圈:可以將小程序分享到微信朋友圈
分享到企業(yè)微信:可以將小程序分享給企業(yè)微信好友、企業(yè)微信群
當(dāng)頁面中定義 onShareAppMessage
生命周期后,轉(zhuǎn)發(fā)到朋友 和 分享到企業(yè)微信 就可以正常使用了
onShareAppMessage 文檔:https://uniapp.dcloud.net.cn/api/plugins/share.html#onshareappmessage
export default {
onShareAppMessage(res) {
}
}
實現(xiàn)小程序分享,有兩種方式:
1、點(diǎn)擊右上角的三個點(diǎn)
2、通過 button 組件的開發(fā)能力 open-type="share"
觸發(fā)分享
onShareAppMessage(res)
的回調(diào)參數(shù) res 值示例:
// 通過右上角的三個點(diǎn)觸發(fā)的觸發(fā)的回調(diào)參數(shù)
{
"from": "menu",
}
// 通過 button 組件的開發(fā)能力觸發(fā)的回調(diào)參數(shù)
{
"from":"button",
"target":{
"id":"",
"dataset":{
},
"offsetTop":249,
"offsetLeft":138
}
}
使用示例:
title 為空字符串時,默認(rèn)為當(dāng)前頁面標(biāo)題
path 為空字符串時,默認(rèn)為當(dāng)前頁面路徑
export default {
// 轉(zhuǎn)發(fā)到朋友和企業(yè)微信
onShareAppMessage(res) {
// 通過button按鈕觸發(fā)
if (res.from === 'button') {
console.log(res.target)
}
return {
title: "首頁", //分享標(biāo)題
path: "/pages/login/login", //分享鏈接
}
}
}
當(dāng)頁面中定義 onShareTimeline
生命周期時,分享到朋友圈 就可以正常使用了
export default {
// 分享到微信朋友圈
onShareTimeline(res) {
return {
title: "首頁", //分享標(biāo)題
path: "/pages/login/login",//分享鏈接
}
}
}
2. uView 的微信小程序分享
uview 小程序分享文檔:https://www.uviewui.com/js/mpShare.html
uview 小程序分享是對 uni 的 onShareAppMessage 生命周期的封裝
在 main.js 中添加以下代碼,打開小程序分享功能,將小程序的所有頁面分享功能都打開了
默認(rèn)只開啟分享給朋友,并沒有開啟分享到朋友圈,可通過查看 libs/mixin/mpShare/mpShare.js 證實這個結(jié)論
// 引入uView對小程序分享的mixin封裝
const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare');
Vue.mixin(mpShare)
同時開啟 分享給朋友 和 分享到朋友圈
// 引入uView對小程序分享的mixin封裝
const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare');
// 打開所有頁面的分享到朋友圈功能
mpShare.onShareTimeline = res => ({ title: '', path: '' })
Vue.mixin(mpShare)