最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue2.0 如何在hash模式下實現微信分享

 更新時間:2019年01月22日 10:57:03   作者:狂奔的小馬扎  
這篇文章主要介紹了vue2.0 如何在hash模式下實現微信分享,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

最近又把vue的demo拿出來整理下,正好要做“微信分享”功能,于是遇到新的問題;

由于hash模式下,帶有“#”,導致微信分享的簽證無效;當改成history的模式后,分享ok;

但是問題來了,history模式下相當、、:

  • 刷新頁面,頁面報錯404;這不是扯犢子嗎?【不過這個問題,可以在后臺解決,這里就不說了】
  • assets下的img文件,引入路徑失?。?/li>

對于上面的問題,我是直接不能忍啊,所以history模式是肯定不行的;我決定依舊用hash模式;history模式萬萬要不得

那么問題來了:怎么在hash模式下實現微信分享?

其實微信分享失敗的問題,最重要的一步就是解決“#”的問題;

一般的頁面,我們獲取當前的url是醬紫操作的

let params = '&params=' + JSON.stringify({url: window.location.href});

SPA頁面,我們需要做點小調整,調整的目的是讓“#”say goodbye

let params = '&params=' + JSON.stringify({url: encodeURIComponent(window.location.href.split('#')[0])});

這樣修改后,簽名的url中沒帶“#”,這樣就ok了,下面貼上完成的代碼

<script>
// 微信分享
import configModel from "../models/config.model";
import elementService from "../services/element.service";

class ShareService{
 wxShare(succCb, cancelCb, errorCb){
  let baseUrl = 'http://q.letwx.com/api/jsapi?action=jscfg';
  let samekey = '&uid=' + configModel.uid + '&wxapiopenid=' + configModel.apiopenid + '&wxapitoken=' + configModel.apitoken + '&debug=nf';
  let params = '&params=' + JSON.stringify({url: encodeURIComponent(window.location.href.split('#')[0])}); // 這里是關鍵
  let url = baseUrl + params + samekey;
  $.post(url, data => {
   elementService.loadingHide();
   console.log(data);
   switch (data.error) {
    case 0:
     this.wxConfig(data.cfg, configModel.shareInfo, succCb, cancelCb, errorCb);
     break;
    default:
     elementService.message(data.error_msg, 'error');
     break;
   }
  }, 'json');
 }
 wxConfig(wxconfig, share, succCb, cancelCb, errorCb){
  wx.config({
   debug: false,
   appId: wxconfig.appId,
   timestamp: wxconfig.timestamp,
   nonceStr: wxconfig.nonceStr,
   signature: wxconfig.signature,
   jsApiList: [
    'onMenuShareTimeline',
    'onMenuShareAppMessage',
    'onMenuShareQQ',
    'onMenuShareWeibo'
   ]
  });
  wx.ready(function() {
   wx.onMenuShareAppMessage({ //朋友
    title: share.title,
    desc: share.desc,
    link: share.link,
    imgUrl: share.imgUrl,
    success: function() {
     succCb && succCb();
    },
    cancel: function() {
     cancelCb && cancelCb();
    }
   });
   wx.onMenuShareTimeline({ //朋友圈
    title: share.desc,
    link: share.link,
    imgUrl: share.imgUrl,
    success: function() {
     succCb && succCb();
    },
    cancel: function() {
     cancelCb && cancelCb();
    }
   });
   wx.onMenuShareQQ({ //QQ
    title: share.title,
    desc: share.desc,
    link: share.link,
    imgUrl: share.imgUrl,
    success: function() {
     succCb && succCb();
    },
    cancel: function() {
     cancelCb && cancelCb();
    }
   });
   wx.onMenuShareWeibo({ //QQ
    title: share.title,
    desc: share.desc,
    link: share.link,
    imgUrl: share.imgUrl,
    success: function() {
     succCb && succCb();
    },
    cancel: function() {
     cancelCb && cancelCb();
    }
   });
  });
  wx.error(function(res) {
   console.log(res);
   errorCb && errorCb(JSON.stringify(res));
  });
 }
}

let shareSerivice = new ShareService();
export default shareSerivice;
</script>

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

相關文章

  • vue中使用WX-JSSDK的兩種方法(推薦)

    vue中使用WX-JSSDK的兩種方法(推薦)

    這篇文章主要介紹了vue中使用WX-JSSDK的兩種方法,每種方法通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 關于elementUI select控件綁定多個值(對象)

    關于elementUI select控件綁定多個值(對象)

    這篇文章主要介紹了關于elementUI select控件綁定多個值(對象),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue中對拿到的數據進行A-Z排序的實例

    Vue中對拿到的數據進行A-Z排序的實例

    今天小編就為大家分享一篇Vue中對拿到的數據進行A-Z排序的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 適合前端Vue開發(fā)童鞋的跨平臺Weex的使用詳解

    適合前端Vue開發(fā)童鞋的跨平臺Weex的使用詳解

    這篇文章主要介紹了適合前端Vue開發(fā)童鞋的跨平臺Weex的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • VUE?el-table列表搜索功能純前端實現方法

    VUE?el-table列表搜索功能純前端實現方法

    Vue表搜索是指在Vue應用中實現對表格數據的搜索功能,下面這篇文章主要給大家介紹了關于VUE?el-table列表搜索功能純前端實現的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • 詳解Vue 中 extend 、component 、mixins 、extends 的區(qū)別

    詳解Vue 中 extend 、component 、mixins 、extends 的區(qū)別

    這篇文章主要介紹了Vue 中 extend 、component 、mixins 、extends 的區(qū)別,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-12-12
  • 如何利用vue展示.docx文件、excel文件和csv文件內容

    如何利用vue展示.docx文件、excel文件和csv文件內容

    最近遇到了一些新的需求,需要前端實現文件預覽功能,下面這篇文章主要給大家介紹了關于如何利用vue展示.docx文件、excel文件和csv文件內容的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Vue 一鍵清空表單的實現方法

    Vue 一鍵清空表單的實現方法

    這篇文章主要介紹了Vue 一鍵清空表單的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Vue.js展示AJAX數據簡單示例講解

    Vue.js展示AJAX數據簡單示例講解

    當通過AJAX方式取回數據后,使用vue.js可以完美地按一定邏輯在頁面上的展示數據,代碼簡單、優(yōu)美、自然,而且便于與在用的頁面框架集成,本文給大家介紹Vue.js展示AJAX數據簡單示例
    2017-03-03
  • vue?webpack打包原理解析(全網最新最全)

    vue?webpack打包原理解析(全網最新最全)

    webpack是讓我們可以進行模塊化開發(fā),并且會幫助我們處理模塊間的依賴關系,這篇文章主要介紹了vue?webpack打包原理,本篇介紹的有點長,希望大家耐心閱讀
    2023-02-02

最新評論

探索| 嵊州市| 亳州市| 瑞安市| 都安| 平凉市| 龙井市| 邹城市| 托里县| 手游| 商南县| 吴忠市| 怀集县| 湖州市| 林甸县| 菏泽市| 深水埗区| 横山县| 吉水县| 沾化县| 临夏县| 宕昌县| 万荣县| 东安县| 仁布县| 澄城县| 中西区| 乳源| 新源县| 昆明市| 迁西县| 兰州市| 柳河县| 六枝特区| 濮阳县| 崇明县| 砚山县| 宁南县| 太康县| 南涧| 宁远县|