微信H5開發(fā)分享添加圖片 標題 描述的方法
時間:2019-08-28 02:05:16 | 來源:
在微信里不是所有的網(wǎng)頁都可以按照微信友好的分享形式分享的,對于一般的網(wǎng)頁來說(如非被微信屏蔽掉)是可以分享傳播的,但僅限于分享轉(zhuǎn)發(fā)(就是默認的沒圖片 默認標題 鏈接顯示)
如果想要更好看,自定義標題 圖片 描述,可以。必須要微信認證過,加到自己的白名單里就可以了 說白點就是要掏錢購買公眾號,在公眾號里綁定Js安全域名。
1 綁定域名
先登錄微信公眾平臺進入“公眾號設(shè)置”的“功能設(shè)置”里填寫“JS接口安全域名”。
備注:登錄后可在“開發(fā)者中心”查看對應(yīng)的接口權(quán)限
2 引入js文件
在需要調(diào)用JS接口的頁面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js
如果是和我一樣是Vue的在 index.html 文件中的引入
<scripttype="text/javascript"src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
3 通過config接口注入權(quán)限驗證配置
所有需要使用JS-SDK的頁面必須先注入配置信息,否則將無法調(diào)用(同一個url僅需調(diào)用一次,對于變化url的SPA的web app可在每次url變化時進行調(diào)用)
也就是說如果你所分享的是多頁面的并且都想讓別人從H5 入口頁面進入那么你只需要進入時配置一次信息就可以了,并不需要每個頁面配置一次.
1 首先你需要從后臺獲取分享配置信息
你需要上傳你要分享的的網(wǎng)頁鏈接的 # 以前的
對當前頁面鏈接以# 切割獲取# 以前部分進行編碼(后臺需要相應(yīng)的解碼)
var localUrl = encodeURIComponent(location.href.split('#')[0])
然后傳給后臺獲取配置信息。(因為簽名是根據(jù)你當前的分享鏈接 和時間戳生成的),其實這樣我們分享出去的鏈接是被微信加過簽名參數(shù)的鏈接,和我們看的鏈接有點不一樣了
httpGet('xforh5/service/sys/wechat/js/config?url=' + localUrl, {}).then(response => { //在這里獲取到配置信息 進行配置 }
獲取回來的配置信息
{
"status": 0,
"result": {
"appId": "wx9e3d362372762cc1",
"timestamp": 1563269390,
"nonStr": "u1n8BylqEcBBlkZ7",
"signature": "72a46eac7b1505e51b148b0949f1f8e90e5ef9ab"
}
}
獲取到配置信息后就已完成大半了,接下來就要用的引入的微信 JS Api
wx.config({
})
wx.config({ debug: false, //默認為false 為true的時候是調(diào)試模式,開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出 appId: appId,//必填,公眾號的唯一標識 timestamp: timestamp,// 必填,生成簽名的時間戳 nonceStr: nonStr,// 必填,生成簽名的隨機串 signature: signature,// 必填,簽名// 必填,需要使用的JS接口列表 jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone', 'updateAppMessageShareData', 'updateTimelineShareData', ], });
需要的JS接口列表 根據(jù)公司分享需要選擇接口
wx.ready(function () {
})
上面 config信息驗證后會執(zhí)行ready方法,所有接口調(diào)用都必須在config接口獲得結(jié)果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調(diào)用相關(guān)接口,則須把相關(guān)接口放在ready函數(shù)中調(diào)用來確保正確執(zhí)行。對于用戶觸發(fā)時才調(diào)用的接口,則可以直接調(diào)用,不需要放在ready函數(shù)中。
wx.ready(function () { wx.onMenuShareAppMessage(window.share_config.share); // 微信好友 wx.onMenuShareTimeline(window.share_config.share); // 微信朋友圈 wx.onMenuShareQQ(window.share_config.share); // QQ wx.updateAppMessageShareData(window.share_config.share); wx.updateTimelineShareData(window.share_config.share); });
window.share_config.share 掛載的分享的配置信息
//配置自定義分享內(nèi)容
window.share_config = {
share: {
title:自定義標題
, // 這是分享展示卡片的標題
desc:自定義描述
, // 這是分享展示的摘要
link:要分享的鏈接
, // 這里是分享的網(wǎng)址
imgUrl:右下角顯示圖標
, // 這里是需要展示的圖標
success: function (rr) {分享成功回調(diào) 可以在這兒加 alert 打印 便于調(diào)試
console.log('成功' + JSON.stringify(rr))
},
cancel: function (tt) {分享失敗回調(diào) 可以在這兒加 alert 打印 便于調(diào)試
console.log('失敗' + JSON.stringify(tt));
}
}
};
wx.error(function (res) {
})
在error 函數(shù)中可獲取的錯誤信息,尤其是配置信息的錯誤,因為需要先配置配置信息然后微信驗證,驗證通過后再調(diào)用 wx.ready() 里的分享配置信息(其實驗證不通過也會走 應(yīng)該是異步的)
所以在這里看錯誤信息很重要 可以加 alert 當然如果是調(diào)試模式它自己也會跳出alert 提示
注意
發(fā)生錯誤信息檢查
1 公眾號 appid是否綁對了
2 安全域名是否改了
3 就是取配置信息的時候是否取到并且上傳對了(我就是以為對著api字段就沒事兒,結(jié)果有個字段和后臺傳過來的不一致然后一直配置信息失敗 提示 invalid signature)
最后附上完整分享函數(shù) 只需要在你獲取到需要分享的必要信息在調(diào)用(記得修改里面的參數(shù))
share() { //對url 進行編碼var localUrl = encodeURIComponent(location.href.split('#')[0]);//// //url傳到后臺的格式// var url = 'URL=' + localUrl;// //這幾個參數(shù)都是后臺從微信公眾平臺獲取到的// var nonceStr,signature,timestamp,appId,shareUrl;//+ this.$route.query.viewidlet currentUrl = location.href httpGet('xforh5/service/sys/wechat/js/config?url=' + localUrl, {}).then(response => { const {appId, nonStr, signature, timestamp} = response.result //通過微信config接口注入配置 wx.config({ debug: false, //默認為false 為true的時候是調(diào)試模式,會打印出日志 appId: appId, timestamp: timestamp, nonceStr: nonStr, signature: signature, jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone', 'updateAppMessageShareData', 'updateTimelineShareData', ], }); //配置自定義分享內(nèi)容window.share_config = { share: { title: `自定義標題`, // 這是分享展示卡片的標題 desc: `自定義描述`, // 這是分享展示的摘要 link: `要分享的鏈接`, // 這里是分享的網(wǎng)址 imgUrl: `右下角顯示圖標`, // 這里是需要展示的圖標 success: function (rr) { ` 分享成功回調(diào) 可以在這兒加 alert 打印 便于調(diào)試`console.log('成功' + JSON.stringify(rr)) }, cancel: function (tt) { ` 分享失敗回調(diào) 可以在這兒加 alert 打印 便于調(diào)試`console.log('失敗' + JSON.stringify(tt)); } } }; // config wx.ready(function () { wx.onMenuShareAppMessage(window.share_config.share); // 微信好友 wx.onMenuShareTimeline(window.share_config.share); // 微信朋友圈 wx.onMenuShareQQ(window.share_config.share); // QQ wx.updateAppMessageShareData(window.share_config.share); wx.updateTimelineShareData(window.share_config.share); }); wx.error(function (res) { }); }); }
藍暢信息技術(shù)有限公司成功為多家世界財富500強企業(yè)以及其他著名品牌提供優(yōu)質(zhì)服務(wù),是您靠譜的互聯(lián)網(wǎng)開發(fā)供應(yīng)商。
服務(wù)客戶遍及北京、上海、杭州、深圳、廣州、天津、青島、南京、寧波、蘇州、無錫、廈門、重慶、西安等大中型城市及地區(qū) 主要業(yè)務(wù):H5開發(fā),H5設(shè)計,H5外包,微信開發(fā)外包,H5商城開發(fā),小程序商城開發(fā),網(wǎng)站開發(fā)外包,H5游戲開發(fā),小程序開發(fā)外包,小程序設(shè)計、APP開發(fā)外包,UI設(shè)計,視頻后期制作等
網(wǎng)站優(yōu)化公司:網(wǎng)站優(yōu)化的作用
如何實現(xiàn)SEO關(guān)鍵詞排名提升成為了企業(yè)亟待解決的問題
提升網(wǎng)站快速排名的SEO策略,讓你的網(wǎng)站名列前茅
打造高效SEO網(wǎng)站系統(tǒng),提升您的在線業(yè)務(wù)