国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue微信分享 vue實現當前頁面分享其他頁面

2019-11-19 14:48:10
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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:"http://XXXXXXXXX.com/picactive.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 + '×tamp=' + 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 + '×tamp=' + timestamp + '&url=' + window.location.href

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

6、link參數

上述 5 問題中的加密字符串匯總的 url 和 分享對象中 link中的頁面鏈接可以不用保持一樣,因為本來就是要在當前頁面分享出去其他頁面的鏈接。網上我看到有人說這兩個必須要保持一樣,其實沒有必要, 除非你只是簡單的在vue項目中的其中一個頁面做分享 , 然后只分享當前頁面才需要讓二者保持一致性。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正阳县| 内乡县| 固安县| 榆社县| 青田县| 宁河县| 辰溪县| 镇安县| 土默特左旗| 长治县| 定远县| 开封县| 合肥市| 宣化县| 彩票| 武川县| 汶川县| 双城市| 威信县| 土默特左旗| 宽城| 星子县| 拉萨市| 安平县| 大连市| 峡江县| 鸡东县| 临泽县| 中西区| 拉孜县| 老河口市| 通江县| 开封市| 乌兰察布市| 喀喇沁旗| 湘乡市| 呼伦贝尔市| 阿合奇县| 菏泽市| 富裕县| 冕宁县|