中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

微信轉發或分享朋友圈帶縮略圖、標題和描述的實現方法

發布時間:2020-06-10 13:01:38 來源:網絡 閱讀:1696 作者:八九不離 欄目:移動開發

問題描述:

  1. 微信公眾號中(頁面均用vue),分享出去的頁面,二次分享不能獲取縮略和描述;

APP內嵌的H5頁面(有用vue寫的頁面,也有jsp頁面),分享給好友或朋友圈,二次分享不能獲取縮略和描述;

微信轉發或分享朋友圈帶縮略圖、標題和描述的實現方法


微信轉發或分享朋友圈帶縮略圖、標題和描述的實現方法

問題思考:

百度總結,發現網友貢獻最多的就是在body之后加一個img標簽并且設置display:none,雖然這種方法感覺不科學,但我還是嘗試了一下,發現在微信6.5.5版本之后已經失效了。分享只能通過設置微信的分享接口來實現縮略圖和簡介的調用,接通jssdk。

不管是微信公眾號中分享的內容 還是 普通的H5頁面 都需要微信簽名驗證的。


解決方案

1.在jsp頁面中


頁面引入

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

shareJssdk.js內容為:

$(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,?//?開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
????????????appId:?appId,?//?必填,公眾號的唯一標識
????????????timestamp:?timestamp,?//?必填,生成簽名的時間戳
????????????nonceStr:?nonceStr,?//?必填,生成簽名的隨機串
????????????signature:?signature,//?必填,簽名,見附錄1
????????????jsApiList:?["onMenuShareTimeline",?"onMenuShareAppMessage",?"onMenuShareQQ"?,?"onMenuShareWeibo"]?//?必填,需要使用的JS接口列表,所有JS接口列表見附錄2
????????});
?
????????wx.ready(function(){
????????????var?shareData?=?{
????????????????title:?document.title,
????????????????desc:?'政府牽頭推動成立的惠民金融平臺',
????????????????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);
????????});
????}
})

確保你獲取用來簽名的url是動態獲取的,動態頁面可參見實例代碼中php的實現方式。如果是html的靜態頁面在前端通過ajax將url傳到后臺簽名,前端需要用js獲取當前頁面除去’#‘hash部分的鏈接(可用location.href.split(’#’)[0]獲取,而且需要encodeURIComponent),因為頁面一旦分享,微信客戶端會在你的鏈接末尾加入其它參數,如果不是動態獲取當前鏈接,將導致分享后的頁面簽名失敗。


在vue中設置

安裝微信sdk


npm install weixin-js-sdk


在需要用到分享的頁面,引入sdk

import?wx?from?'weixin-js-sdk';

在App.vued的,methods方法中加入這個公用方法

//獲取分享配置
??????????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,//生產環境需要關閉debug模式
??????????????????????????appId:?result.appId,//appId通過微信服務號后臺查看
??????????????????????????timestamp:?result.timestamp,//生成簽名的時間戳
??????????????????????????nonceStr:?result.nonceStr,//生成簽名的隨機字符串
??????????????????????????signature:?result.signature,//簽名
??????????????????????????jsApiList:?[
??????????????????????????????'onMenuShareTimeline','onMenuShareAppMessage'
??????????????????????????]
??????????????????????});
??????????????????}else{
??????????????????????_this.$message({
??????????????????????????message:?response.msg,
??????????????????????????center:?true,
??????????????????????????duration:2000,
??????????????????????????customClass:'mesTip'
??????????????????????});
??????????????????}
??????????????})
??????????},

在頁面的methods中,加上shareWeChat方法,
data中的數據

//======data中的數據
shareConfig:{
??????????????????title:'GetwxLink',
??????????????????desc:'GetwxLink',
??????????????????share_url:location.href,
??????????????????share_img:'http://www.gettool.cn/GetwxLink/'
????????????????},
?
//methods方法
//設置微信分享
??????????shareWeChat(){
??????????????let?share_title?=?this.shareConfig.title;
??????????????let?_this?=?this;
??????????????var?config?=?{
??????????????????title:?share_title,?//?分享標題
??????????????????desc:_this.shareConfig.desc,
??????????????????link:?_this.shareConfig.share_url,?//?分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號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);
??????????????});
??????????},

注意:


特別注意,需要在公眾號中添加js安全域名。開發公眾號中,好像只能添加一個;生產公眾號,最多可以添加3個。 不加安全域名,會報錯的。

特別注意url需要動態獲取,傳遞給后臺,否則會報錯。因為二次分享的時候,微信會自動在url后面追加一串。如果不傳遞,就會造成url不對,那么簽名就不正確


GetwxLink


向AI問一下細節

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

AI

东乌珠穆沁旗| 云龙县| 揭西县| 舞阳县| 钦州市| 阳山县| 醴陵市| 奈曼旗| 伊宁市| 清水县| 民权县| 沿河| 宁波市| 石景山区| 天全县| 定州市| 桂阳县| 红桥区| 北宁市| 安阳县| 江永县| 青铜峡市| 敦化市| 海口市| 台北县| 隆化县| 固安县| 河北省| 武清区| 甘谷县| 万盛区| 上饶县| 桦甸市| 甘肃省| 镇远县| 枣庄市| 囊谦县| 新乡县| 固原市| 平邑县| 宽城|