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

首頁 > 熱點(diǎn) > 微信 > 正文

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

2024-07-22 01:19:11
字體:
供稿:網(wǎng)友

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

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

但是問題來了,history模式下相當(dāng)操蛋:

刷新頁面,頁面報(bào)錯(cuò)404;這不是扯犢子嗎?【不過這個(gè)問題,可以在后臺(tái)解決,這里就不說了】 assets下的img文件,引入路徑失敗;

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

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

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

一般的頁面,我們獲取當(dāng)前的url是醬紫操作的

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

SPA頁面,我們需要做點(diǎn)小調(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])}); // 這里是關(guān)鍵  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>            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大埔区| 潞城市| 五大连池市| 崇信县| 南召县| 关岭| 中山市| 施秉县| 澄江县| 金塔县| 沁源县| 巩留县| 文昌市| 虞城县| 马鞍山市| 松桃| 温宿县| 和田市| 辽中县| 五华县| 江永县| 新干县| 宁陵县| 孝感市| 新龙县| 广河县| 延长县| 恩平市| 泸水县| 海盐县| 邯郸市| 五寨县| 明溪县| 永德县| 关岭| 东乡县| 海兴县| 新乐市| 新巴尔虎左旗| 奉贤区| 仙游县|