uni-app 微信公衆號(H5)自定義分享,禁止分享

先放一個官方文檔的鏈接

https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#48


上代碼:

禁止分享:

async hideShare() {
    let locationHref = {url: window.location.href};
    let info = await request({
      url: `這個是後臺提供的接口地址,會提供你分享的一些基本配置詳細見微信官方文檔`,
      method: 'post',
      data: locationHref
    });
    const data = info.data.result;
    // 這個要先npm install jweixin-module --save(具體命令行各位在百度一下吧,我忘了)然後在這樣=一下
    const wx = require('jweixin-module'); 
    wx.config({
      debug: false,
      appId: data.appId, // 和獲取Ticke的必須一樣------必填,公衆號的唯一標識
      timestamp: data.timestamp, // 必填,生成簽名的時間戳
      nonceStr: data.nonceStr, // 必填,生成簽名的隨機串
      signature: data.signature, // 必填,簽名,見附錄1
      jsApiList: [
        'hideMenuItems'
      ]
    });
    console.log('禁止分享');
    // 禁止分享
    wx.hideMenuItems({// 要隱藏的菜單項,只能隱藏“傳播類”和“保護類”按鈕,所有menu項見附錄3
      menuList: ['menuItem:share:appMessage','menuItem:share:timeline','menuItem:share:timeline', 'menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone','menuItem:openWithSafari']
    });
  }

分享:

 let locationHref = {url: window.location.href};
    let info = await request({
      url: `/xxx/xx/xx/xx`,
      method: 'post',
      data: locationHref
    });
    const _this = this;
    const data = info.data.result;
    const wx = require('jweixin-module');
    wx.config({
      debug: false,
      appId: data.appId, // 和獲取Ticke的必須一樣------必填,公衆號的唯一標識
      timestamp: data.timestamp, // 必填,生成簽名的時間戳
      nonceStr: data.nonceStr, // 必填,生成簽名的隨機串
      signature: data.signature, // 必填,簽名,見附錄1
      //需要分享的列表項:發送給朋友,分享到朋友圈,分享到QQ,分享到QQ空間
      jsApiList: [
        "updateAppMessageShareData",
        "updateTimelineShareData",
        'showMenuItems'
      ]
    });
// 安卓這塊不用showMenuItems也可以,但是ios情況下,去了禁止分享的頁面在去可以分享的頁面,就不能 
// 分享,所以需要在開啓一下
    wx.showMenuItems({
      menuList: ['menuItem:share:appMessage','menuItem:share:timeline','menuItem:share:timeline', 'menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone','menuItem:openWithSafari'] // 要顯示的菜單項,所有menu項見附錄3
    });
    //處理驗證失敗的信息
    wx.error(function(res) {
    });
    let imgUrl = getImgUrl(shareObj.imgUrl);
    imgUrl = imgUrl ? imgUrl : this.currentObject.defaultConfigs.shareDefaultImgUrl;
    //處理驗證成功的信息
    wx.ready(function() {
      //分享到朋友圈
      wx.updateTimelineShareData({
        title: shareObj.title ? shareObj.title : this.currentObject.defaultConfigs.shareDefaultTitle, // 分享標題
        desc: shareObj.desc ? shareObj.desc : '',
        link: shareObj.link? shareObj.link : window.location.href, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致
        imgUrl: imgUrl, // 分享圖標
        success: function(res) {
          // 用戶確認分享後執行的回調函數
          _this.shareSuccess(res);
        }
      });
      //分享給朋友
      wx.updateAppMessageShareData({
        title: shareObj.title ? shareObj.title : this.currentObject.defaultConfigs.shareDefaultTitle, // 分享標題
        desc: shareObj.desc ? shareObj.desc : '', // 分享描述
        link: shareObj.link? shareObj.link : window.location.href, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致
        imgUrl: imgUrl, // 分享圖標
        type: "", // 分享類型,music、video或link,不填默認爲link
        dataUrl: "", // 如果type是music或video,則要提供數據鏈接,默認爲空
        success: function(res) {
          // 用戶確認分享後執行的回調函數
        }
      });
    });

效果:

禁止分享給朋友,朋友圈,qq啥的,效果圖如下:

 

可以分享至朋友,朋友圈,qq啥的效果圖:

 

***uni-app 初學者,以上代碼均爲自己摸索得出,如有錯誤,請指正。***

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章