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

溫馨提示×

溫馨提示×

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

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

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

發布時間:2020-10-05 16:07:52 來源:腳本之家 閱讀:199 作者:敵人-別人家的孩子 欄目:web開發

本文實例為大家分享了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/58310.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參數為其他頁面鏈接

6、link參數

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

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

向AI問一下細節

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

AI

灵川县| 长泰县| 佛教| 兖州市| 马公市| 老河口市| 龙南县| 土默特右旗| 湘西| 柞水县| 龙岩市| 肇州县| 海丰县| 清原| 塔河县| 枝江市| 搜索| 云和县| 西昌市| 中超| 密山市| 开封县| 恩平市| 合山市| 荔波县| 城口县| 昌吉市| 平泉县| 渭源县| 延川县| 吉安县| 南京市| 宁陕县| 铜鼓县| 阿坝| 石屏县| 萍乡市| 张家口市| 揭东县| 山阴县| 菏泽市|