uniapp 項目中的微信小程序分享

作者:辰風(fēng)沐陽 閱讀:3863 發(fā)布時間:2023-01-11 上次更新:2023-01-12

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

  1. export default {
  2. onShareAppMessage(res) {
  3. }
  4. }

實現(xiàn)小程序分享,有兩種方式:

1、點(diǎn)擊右上角的三個點(diǎn)
2、通過 button 組件的開發(fā)能力 open-type="share" 觸發(fā)分享

onShareAppMessage(res) 的回調(diào)參數(shù) res 值示例:

  1. // 通過右上角的三個點(diǎn)觸發(fā)的觸發(fā)的回調(diào)參數(shù)
  2. {
  3. "from": "menu",
  4. }
  5. // 通過 button 組件的開發(fā)能力觸發(fā)的回調(diào)參數(shù)
  6. {
  7. "from":"button",
  8. "target":{
  9. "id":"",
  10. "dataset":{
  11. },
  12. "offsetTop":249,
  13. "offsetLeft":138
  14. }
  15. }

使用示例:

title 為空字符串時,默認(rèn)為當(dāng)前頁面標(biāo)題
path 為空字符串時,默認(rèn)為當(dāng)前頁面路徑

  1. export default {
  2. // 轉(zhuǎn)發(fā)到朋友和企業(yè)微信
  3. onShareAppMessage(res) {
  4. // 通過button按鈕觸發(fā)
  5. if (res.from === 'button') {
  6. console.log(res.target)
  7. }
  8. return {
  9. title: "首頁", //分享標(biāo)題
  10. path: "/pages/login/login", //分享鏈接
  11. }
  12. }
  13. }

當(dāng)頁面中定義 onShareTimeline 生命周期時,分享到朋友圈 就可以正常使用了

  1. export default {
  2. // 分享到微信朋友圈
  3. onShareTimeline(res) {
  4. return {
  5. title: "首頁", //分享標(biāo)題
  6. path: "/pages/login/login",//分享鏈接
  7. }
  8. }
  9. }

2. uView 的微信小程序分享


uview 小程序分享文檔:https://www.uviewui.com/js/mpShare.html

uview 小程序分享是對 uni 的 onShareAppMessage 生命周期的封裝

在 main.js 中添加以下代碼,打開小程序分享功能,將小程序的所有頁面分享功能都打開了

默認(rèn)只開啟分享給朋友,并沒有開啟分享到朋友圈,可通過查看 libs/mixin/mpShare/mpShare.js 證實這個結(jié)論

  1. // 引入uView對小程序分享的mixin封裝
  2. const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare');
  3. Vue.mixin(mpShare)

同時開啟 分享給朋友分享到朋友圈

  1. // 引入uView對小程序分享的mixin封裝
  2. const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare');
  3. // 打開所有頁面的分享到朋友圈功能
  4. mpShare.onShareTimeline = res => ({ title: '', path: '' })
  5. Vue.mixin(mpShare)

標(biāo)簽: 微信小程序 uni-app