微信轉(zhuǎn)發(fā)或分享朋友圈帶縮略圖、標(biāo)題和描述的實(shí)現(xiàn)方法

問(wèn)題描述:

微信公眾號(hào)中(頁(yè)面均用vue)挖胃,分享出去的頁(yè)面杂靶,二次分享不能獲取縮略和描述;

APP內(nèi)嵌的H5頁(yè)面(有用vue寫(xiě)的頁(yè)面酱鸭,也有jsp頁(yè)面)吗垮,分享給好友或朋友圈,二次分享不能獲取縮略和描述凹髓;


工具:GetwxLink

問(wèn)題思考:

百度總結(jié)烁登,發(fā)現(xiàn)網(wǎng)友貢獻(xiàn)最多的就是在body之后加一個(gè)img標(biāo)簽并且設(shè)置display:none,雖然這種方法感覺(jué)不科學(xué),但我還是嘗試了一下蔚舀,發(fā)現(xiàn)在微信6.5.5版本之后已經(jīng)失效了饵沧。分享只能通過(guò)設(shè)置微信的分享接口來(lái)實(shí)現(xiàn)縮略圖和簡(jiǎn)介的調(diào)用锨络,接通jssdk。

不管是微信公眾號(hào)中分享的內(nèi)容 還是 普通的H5頁(yè)面 都需要微信簽名驗(yàn)證的狼牺。

解決方案

1.在jsp頁(yè)面中

頁(yè)面引入

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

<script src="/js/common/shareJssdk.js"></script>

shareJssdk.js內(nèi)容為:

$(function(){

? ? var url = encodeURIComponent(location.href.split('#')[0]);

? ? //分享

? ? $.ajax({

? ? ? ? type : "get",

? ? ? ? url : "/phjf/api/v1/sys/getJssdkSgin",

? ? ? ? dataType : "json",

? ? ? ? data:{

? ? ? ? ? ? url:url

? ? ? ? },

? ? ? ? success : function(result){

? ? ? ? ? ? wxstart(result.data);

? ? ? ? },

? ? ? ? error:function(data){

? ? ? ? ? ? alert("連接失斚鄱!");

? ? ? ? }

? ? });

? ? function wxstart(data){

? ? ? ? var url = location.href;? //分享的文章地址

? ? ? ? var appId = data.appId;

? ? ? ? var timestamp = data.timestamp;

? ? ? ? var nonceStr = data.nonceStr;

? ? ? ? var signature = data.signature;

? ? ? ? wx.config({

? ? ? ? ? ? debug: false, // 開(kāi)啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶(hù)端alert出來(lái)锁右,若要查看傳入的參數(shù)失受,可以在pc端打開(kāi),參數(shù)信息會(huì)通過(guò)log打出咏瑟,僅在pc端時(shí)才會(huì)打印拂到。

? ? ? ? ? ? appId: appId, // 必填,公眾號(hào)的唯一標(biāo)識(shí)

? ? ? ? ? ? timestamp: timestamp, // 必填码泞,生成簽名的時(shí)間戳

? ? ? ? ? ? nonceStr: nonceStr, // 必填兄旬,生成簽名的隨機(jī)串

? ? ? ? ? ? signature: signature,// 必填,簽名余寥,見(jiàn)附錄1

? ? ? ? ? ? jsApiList: ["onMenuShareTimeline", "onMenuShareAppMessage", "onMenuShareQQ" , "onMenuShareWeibo"] // 必填领铐,需要使用的JS接口列表,所有JS接口列表見(jiàn)附錄2

? ? ? ? });

? ? ? ? wx.ready(function(){

? ? ? ? ? ? var shareData = {

? ? ? ? ? ? ? ? title: document.title,

? ? ? ? ? ? ? ? desc: '政府牽頭推動(dòng)成立的惠民金融平臺(tái)',

? ? ? ? ? ? ? ? link: location.href,

? ? ? ? ? ? ? ? imgUrl: 'http://file.puhuijinfu.com/imgLoader/test/phjf/img/2018/10/11/xyswkVTROKdq1xBzEYMB.jpeg'

? ? ? ? ? ? };

? ? ? ? ? ? wx.onMenuShareAppMessage(shareData);

? ? ? ? ? ? wx.onMenuShareTimeline(shareData);

? ? ? ? ? ? wx.onMenuShareQQ(shareData);

? ? ? ? ? ? wx.onMenuShareWeibo(shareData);

? ? ? ? });

? ? }

})

確保你獲取用來(lái)簽名的url是動(dòng)態(tài)獲取的宋舷,動(dòng)態(tài)頁(yè)面可參見(jiàn)實(shí)例代碼中php的實(shí)現(xiàn)方式绪撵。如果是html的靜態(tài)頁(yè)面在前端通過(guò)ajax將url傳到后臺(tái)簽名,前端需要用js獲取當(dāng)前頁(yè)面除去’#‘hash部分的鏈接(可用location.href.split(’#’)[0]獲取,而且需要encodeURIComponent)祝蝠,因?yàn)轫?yè)面一旦分享音诈,微信客戶(hù)端會(huì)在你的鏈接末尾加入其它參數(shù),如果不是動(dòng)態(tài)獲取當(dāng)前鏈接绎狭,將導(dǎo)致分享后的頁(yè)面簽名失敗细溅。

在vue中設(shè)置

安裝微信sdk

npm install weixin-js-sdk

在需要用到分享的頁(yè)面,引入sdk

import wx from 'weixin-js-sdk';

在App.vued的儡嘶,methods方法中加入這個(gè)公用方法

//獲取分享配置

? ? ? ? ? jssdkSgin(){? ? ? ? ? ?

? ? ? ? ? ? ? var _this = this;

? ? ? ? ? ? ? var url = encodeURIComponent(location.href.split('#')[0]);

? ? ? ? ? ? ? Http.getJssdkSgin(url).then(response => {

? ? ? ? ? ? ? ? ? var result = response.data;

? ? ? ? ? ? ? ? ? if(response.code == 1) {

? ? ? ? ? ? ? ? ? ? ? followUrl =? result.followUrl;

? ? ? ? ? ? ? ? ? ? ? localStorage.setItem('followUrl',result.followUrl);

? ? ? ? ? ? ? ? ? ? ? wx.config({

? ? ? ? ? ? ? ? ? ? ? ? ? debug: false,//生產(chǎn)環(huán)境需要關(guān)閉debug模式

? ? ? ? ? ? ? ? ? ? ? ? ? appId: result.appId,//appId通過(guò)微信服務(wù)號(hào)后臺(tái)查看

? ? ? ? ? ? ? ? ? ? ? ? ? timestamp: result.timestamp,//生成簽名的時(shí)間戳

? ? ? ? ? ? ? ? ? ? ? ? ? nonceStr: result.nonceStr,//生成簽名的隨機(jī)字符串

? ? ? ? ? ? ? ? ? ? ? ? ? signature: result.signature,//簽名

? ? ? ? ? ? ? ? ? ? ? ? ? jsApiList: [

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'onMenuShareTimeline','onMenuShareAppMessage'

? ? ? ? ? ? ? ? ? ? ? ? ? ]

? ? ? ? ? ? ? ? ? ? ? });

? ? ? ? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? ? ? ? _this.$message({

? ? ? ? ? ? ? ? ? ? ? ? ? message: response.msg,

? ? ? ? ? ? ? ? ? ? ? ? ? center: true,

? ? ? ? ? ? ? ? ? ? ? ? ? duration:2000,

? ? ? ? ? ? ? ? ? ? ? ? ? customClass:'mesTip'

? ? ? ? ? ? ? ? ? ? ? });

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? })

? ? ? ? ? },

在頁(yè)面的methods中喇聊,加上shareWeChat方法,

data中的數(shù)據(jù)

//======data中的數(shù)據(jù)

shareConfig:{

? ? ? ? ? ? ? ? ? title:'GetwxLink',

? ? ? ? ? ? ? ? ? desc:'GetwxLink',

? ? ? ? ? ? ? ? ? share_url:location.href,

? ? ? ? ? ? ? ? ? share_img:'http://www.gettool.cn/GetwxLink/'

? ? ? ? ? ? ? ? },

//methods方法

//設(shè)置微信分享

? ? ? ? ? shareWeChat(){

? ? ? ? ? ? ? let share_title = this.shareConfig.title;

? ? ? ? ? ? ? let _this = this;

? ? ? ? ? ? ? var config = {

? ? ? ? ? ? ? ? ? title: share_title, // 分享標(biāo)題

? ? ? ? ? ? ? ? ? desc:_this.shareConfig.desc,

? ? ? ? ? ? ? ? ? link: _this.shareConfig.share_url, // 分享鏈接蹦狂,該鏈接域名或路徑必須與當(dāng)前頁(yè)面對(duì)應(yīng)的公眾號(hào)JS安全域名一致

? ? ? ? ? ? ? ? ? imgUrl: _this.shareConfig.share_img,

? ? ? ? ? ? ? ? ? type:'link',

? ? ? ? ? ? ? ? ? success: function() {

? ? ? ? ? ? ? ? ? ? ? console.log("success")

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? cancel: function() {

? ? ? ? ? ? ? ? ? ? ? console.log("failf")

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? };

? ? ? ? ? ? ? wx.ready(function () {

? ? ? ? ? ? ? ? ? // 分享到朋友圈

? ? ? ? ? ? ? ? ? wx.onMenuShareTimeline(config);

? ? ? ? ? ? ? ? ? //分享給朋友

? ? ? ? ? ? ? ? ? wx.onMenuShareAppMessage(config);

? ? ? ? ? ? ? });

? ? ? ? ? },

注意:

特別注意誓篱,需要在公眾號(hào)中添加js安全域名。開(kāi)發(fā)公眾號(hào)中凯楔,好像只能添加一個(gè)窜骄;生產(chǎn)公眾號(hào),最多可以添加3個(gè)啼辣。 不加安全域名,會(huì)報(bào)錯(cuò)的御滩。

特別注意url需要?jiǎng)討B(tài)獲取鸥拧,傳遞給后臺(tái)党远,否則會(huì)報(bào)錯(cuò)。因?yàn)槎畏窒淼臅r(shí)候富弦,微信會(huì)自動(dòng)在url后面追加一串沟娱。如果不傳遞,就會(huì)造成url不對(duì)腕柜,那么簽名就不正確

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末济似,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子盏缤,更是在濱河造成了極大的恐慌砰蠢,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唉铜,死亡現(xiàn)場(chǎng)離奇詭異台舱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)潭流,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)竞惋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人灰嫉,你說(shuō)我怎么就攤上這事拆宛。” “怎么了讼撒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵浑厚,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我椿肩,道長(zhǎng)瞻颂,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任郑象,我火速辦了婚禮贡这,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘厂榛。我一直安慰自己盖矫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布击奶。 她就那樣靜靜地躺著辈双,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柜砾。 梳的紋絲不亂的頭發(fā)上湃望,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼证芭。 笑死瞳浦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的废士。 我是一名探鬼主播叫潦,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼官硝!你這毒婦竟也來(lái)了矗蕊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤氢架,失蹤者是張志新(化名)和其女友劉穎傻咖,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體达箍,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡没龙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缎玫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硬纤。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赃磨,靈堂內(nèi)的尸體忽然破棺而出筝家,到底是詐尸還是另有隱情,我是刑警寧澤邻辉,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布溪王,位于F島的核電站,受9級(jí)特大地震影響值骇,放射性物質(zhì)發(fā)生泄漏莹菱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一吱瘩、第九天 我趴在偏房一處隱蔽的房頂上張望道伟。 院中可真熱鬧,春花似錦使碾、人聲如沸蜜徽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拘鞋。三九已至,卻和暖如春矢门,著一層夾襖步出監(jiān)牢的瞬間盆色,已是汗流浹背灰蛙。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隔躲,地道東北人缕允。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蹭越,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子教届,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容