1.準備工作
APPID公眾號id、申請好友分享接口、ip白名單、js接口安全域名設置(必須是通過備案)。要先登錄微信公眾平臺進入“公眾號設置”的功能設置裡填寫“JS接口域名”
2.引入js
注意:支持使用AMD/CMD標準加載方法
3.通過config接口注入權限驗證配置
所有需要使用JS-SDK的頁面必須先注入配置信息,否則將無法調用(同一個url僅需要調用一次,對於變化url的SPA的web app可在每次url變化時進行調用,目前Android微信客戶端不支持pushShate的H5新特性,所以使用pushState來實現web app的頁面會導致簽名失敗,此問題在Android6.2修復)
wx.config({
debug: true, //開啟調試模式,調用所有的api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在PC端打印出來
appId: '', //必填,公賬號的唯一標識
timestamp: '', //必填,生成簽名的時間戳
nonceStr: '', //必填,生成簽名的隨機串
signature: '', //必填,簽名
jsApiList: [ //必填,需要使用js列表,否則無法分享成功
'onMenuShareTimeline', //朋友圈
'onMenuShareAppMessage', //朋友
'onMenuShareQQ', //QQ
'onMenuShareWeibo', //QQ空間
]
})
4.通過ready接口處理成功驗證
wx.ready(function(){
//config信息驗證後會執行ready方法,所有接口調用必須在config接口獲得結果之後,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中
});
5.通過error接口處理失敗驗證
wx.error({
//config信息驗證失敗會執行error函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數中查看,對於SPA可以在這裡更新簽名
});
js代碼
var data = {
title: '',
summary: '',
pic: '',
url: '',
success: function(){
getWeixin() ;//用戶確認分享後執行的回調函數
},
cancel: function(){
//用戶取消分享後執行的回調函數
}
}
wx.config({
swapTitleInWX: true,
appId: "",
timestamp: "",
nonceStr: "",
signature: "",
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
]
})
wx.ready(function () {
wx.onMenuShareTimeline(data);
wx.onMenuShareAppMessage(data);
wx.onMenuShareQQ(data)
wx.onMenuShareWeibo(data)
})
注意點:
- title,建議在14個字以內
- 圖片尺寸: 300*300像素;圖片格式:大小不超過10kB,不支持GIF格式;會取當前頁面body內最前面的一張符合條件的圖片
- 對標題簡要解讀,建議20字以內
- link:'', //分享鏈接,改鏈接域名或路徑必須與當前頁面對應的公賬號JS安全域名一致
二、QQ分享
QQ是通過head裡面的標籤來識別分享的圖標和標題,涉及到h5微數據的一個屬性itemprop,
閱讀更多 美食代碼喵 的文章