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

首頁 > 編程 > JavaScript > 正文

vue2.0 如何在hash模式下實現(xiàn)微信分享

2019-11-19 12:14:14
字體:
供稿:網(wǎng)友

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

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

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

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

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

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

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

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

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

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

let params = '¶ms=' + 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 = '¶ms=' + 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>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 铜鼓县| 广德县| 民权县| 乐安县| 潮州市| 昌吉市| 阿尔山市| 深圳市| 大田县| 合肥市| 拉萨市| 如皋市| 黎平县| 齐齐哈尔市| 桐城市| 分宜县| 平阴县| 福海县| 望城县| 永清县| 宁武县| 盘锦市| 深泽县| 玛纳斯县| 东乡县| 五家渠市| 东平县| 安图县| 砚山县| 海盐县| 红原县| 阳谷县| 阿瓦提县| 呼图壁县| 望都县| 门头沟区| 永年县| 龙里县| 尚义县| 清远市| 长春市|