91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用vue怎么實現一個微信分享功能

發布時間:2021-04-20 16:32:13 來源:億速云 閱讀:1755 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關使用vue怎么實現一個微信分享功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

為什么要使用Vue

Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創建可維護性和可測試性更強的代碼庫,Vue允許可以將一個網頁分割成可復用的組件,每個組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網頁中相應的地方,所以越來越多的前端開發者使用vue。

1、先看官方文檔

wx.onMenuShareAppMessage({

  title: '', // 分享標題

  desc: '', // 分享描述

  link: '', // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致

  imgUrl: '', // 分享圖標

  type: '', // 分享類型,music、video或link,不填默認為link

  dataUrl: '', // 如果type是music或video,則要提供數據鏈接,默認為空

  success: function () {

    // 用戶確認分享后執行的回調函數

  },

  cancel: function () {

    // 用戶取消分享后執行的回調函數

  }

});

2、vue分享踩的坑

* 1、微信分享中獲取動態的url
* 2、 微信二次分享自動添加的參數     form=singlemessage
* 3、vue中各個頁面都可以調用分享

3、直接代碼分析

為了保證每個頁面都可以調起微信分享,需要在vue根組件中,添加 watch監聽

代碼

watch: {
    // 監聽 $route 變化調用分享鏈接
    "$route"(to, from) {
      let currentRouter = this.$router.currentRoute.fullPath;  //
      if(currentRouter.indexOf('userShare') == -1){   //如果不是userShare分享頁面,則分享另外一個接口
        this.shareOut();
      }else{
        this.shareOutTwo();     //當前頁面是userShare頁面時分享調用另外一個接口   
      }
    }
  },

4、shareOut()函數

  let signStr = '';      //sha1加密字符串
      let timestamp = 1473254558; //時間戳
      let nonceStr = 'shupao';
      var obj = {
        title:"",        //標題
        desc:"文字描述",     //描述
        link:"http://www.XXXXXX.com/wx/pub/sr/simpleRegister.do",
        imgUrl:"https://cache.yisu.com/upload/information/20200622/114/25286.jpg"
      };
      this.$ydkAjax({
        SENTYPE: "GET",
        url: this.$domain + '/wx/pub/common/getJsApiTicket.json', //自己服務器獲取jsapi_ticket接口
        params: null,
        successFc: (response) => {
          //拼接sha1加密字符串
          signStr = 'jsapi_ticket=' + response.data.data + '&noncestr=' + nonceStr + '&timestamp=' + timestamp + '&url=' + window.location.href;
          var signature = SHA1(signStr);
          wx.config({
            debug: false,
            appId: "wx6957b3a945a05e90",   //appId
            timestamp: timestamp,      //時間戳
            nonceStr: nonceStr,       //加密需要字符串(自己定義的)    
            signature: signature,      //sha1加密后字符串
            jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage']
          });
          wx.ready(function () {
            //分享到朋友圈"
            wx.onMenuShareTimeline({
              title: obj.title,
              link: obj.link, // 分享鏈接
              imgUrl: obj.imgUrl, // 分享圖標
              success: function () {
                // console.log('分享到朋友圈成功')
              },
              cancel: function () {
                // console.log('分享到朋友圈失敗')
              }
            });
            //分享給朋友
            wx.onMenuShareAppMessage({
              title: obj.title, // 分享標題
              desc: obj.desc, // 分享描述
              link: obj.link, // 分享鏈接
              imgUrl: obj.imgUrl, // 分享圖標
              success: function () {
                // console.log('分享到朋友成功')
              },
              cancel: function () {
                // console.log('分享到朋友失敗')
              }
            });
          })
        },
        isLayer: false
      })

5、需要注意的事

*1、url是直接通過 window.location.href 獲取的,不是使用 window.location.href.split(“#”)[0]來獲取, 因為我的vue項目是通過hash模式來進行路由跳轉的 , 直接使用 window.location.href.split(“#”)[0]會導致簽名失敗

//拼接sha1加密字符串
signStr = 'jsapi_ticket=' + response.data.data + '&noncestr=' + nonceStr + '&timestamp=' + timestamp + '&url=' + window.location.href

*2、而且我們要在當前頁面分享出去之后 , 其他用戶打開之后 不是當前分享出去的頁面 ,這就需要 調整 shareOut()函數中 obj對象中的 link參數為其他頁面鏈接

上述就是小編為大家分享的使用vue怎么實現一個微信分享功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

涟水县| 五莲县| 宜阳县| 耒阳市| 安仁县| 阿合奇县| 荥阳市| 宝坻区| 曲麻莱县| 泗洪县| 平远县| 紫阳县| 湖州市| 龙游县| 石棉县| 瓮安县| 晴隆县| 璧山县| 错那县| 高雄市| 神木县| 祁东县| 金寨县| 苏尼特右旗| 湾仔区| 潞西市| 镇平县| 抚顺市| 若尔盖县| 都江堰市| 海南省| 方正县| 南川市| 巴林右旗| 同德县| 孝感市| 囊谦县| 福建省| 广安市| 基隆市| 根河市|