使用vue怎么實現(xiàn)一個微信分享功能

這期內(nèi)容當中小編將會給大家?guī)碛嘘P使用vue怎么實現(xiàn)一個微信分享功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站設計與策劃設計,南靖網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:南靖等地區(qū)。南靖做網(wǎng)站價格咨詢:13518219792

為什么要使用Vue

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

1、先看官方文檔

wx.onMenuShareAppMessage({

  title: '', // 分享標題

  desc: '', // 分享描述

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

  imgUrl: '', // 分享圖標

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

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

  success: function () {

    // 用戶確認分享后執(zhí)行的回調(diào)函數(shù)

  },

  cancel: function () {

    // 用戶取消分享后執(zhí)行的回調(diào)函數(shù)

  }

});

2、vue分享踩的坑

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

3、直接代碼分析

為了保證每個頁面都可以調(diào)起微信分享,需要在vue根組件中,添加 watch監(jiān)聽

代碼

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

4、shareOut()函數(shù)

  let signStr = '';      //sha1加密字符串
      let timestamp = 1473254558; //時間戳
      let nonceStr = 'shupao';
      var obj = {
        title:"",        //標題
        desc:"文字描述",     //描述
        link:"http://www.XXXXXX.com/wx/pub/sr/simpleRegister.do",
        imgUrl:"/upload/otherpic66/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模式來進行路由跳轉(zhuǎn)的 , 直接使用 window.location.href.split(“#”)[0]會導致簽名失敗

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

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

上述就是小編為大家分享的使用vue怎么實現(xiàn)一個微信分享功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:使用vue怎么實現(xiàn)一個微信分享功能
URL鏈接:http://muchs.cn/article26/jpdgcg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、標簽優(yōu)化、搜索引擎優(yōu)化、服務器托管品牌網(wǎng)站制作、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設