微信js-sdk 是微信公衆平臺面向網頁開發者提供的基於微信的網頁開發工具包,經過使用微信 js-sdk,網頁開發者,可藉助微信高效的使用 拍照、掃碼、錄音、定位等原生應用愛具備的能力。html
在微信公衆平臺綁定安全域名前端
後端接口實現js-sdk配置所須要的參數web
頁面實現 js-sdk 中 config 的注入配置,並實現成功失敗的處理ajax
步驟一 在微信公平臺綁定安全域名json
在微信公衆平臺綁定安全域名(注意:域名的書寫要求,以及那個 txt 文件下載);
-後端
步驟二 引入 js 文件api
文件在須要調用JS接口的頁面引入以下JS文件,(支持https):安全
http://res.wx.qq.com/open/js/...
備註:支持使用 AMD/CMD 標準模塊加載方法加載微信
步驟三:經過config接口注入權限驗證配置app
//分享文案 var title = '碼客街'; // 分享標題 var desc = '歡迎您,進駐碼客街'; // 分享描述 var link = 'http://*******.com/html/share.html'; // 分享連接,該連接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致 var imgUrl = 'http://******.com/web3/rs/img/about/about-logo.png'; // 分享圖標 var type = ''; // 分享類型,music、video或link,不填默認爲link var dataUrl = ''; // 若是type是music或video,則要提供數據連接,默認爲空 $.ajax({ type: "GET", url:'http://*********.com/WeixinJDK/GetSignPackageJSONP', data: { url: window.location.href.split('#')[0] }, dataType: "jsonp", success: function(result) { //獲取appid,timestamp,noncestr,signature等信息,須要後端小夥伴配合 myconfig(rusult.data); }, error: function() { alert('ajax error'); } }); function myconfig(data){ //將data值寫入 wx.config wx.config({ debug: true, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。 appId: '', // 必填,公衆號的惟一標識 timestamp: , // 必填,生成簽名的時間戳 nonceStr: '', // 必填,生成簽名的隨機串 signature: '',// 必填,簽名,見附錄1 jsApiList: [] // 必填,須要使用的JS接口列表,全部JS接口列表見附錄2 }); //經過ready wx.ready(function(){ // config信息驗證後會執行ready方法,全部接口調用都必須在config接口得到結果以後,config是一個客戶端的異步操做,因此若是須要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的接口,則能夠直接調用,不須要放在ready函數中。 // 在wx.ready 裏面 判斷當前客戶端版本是否支持指定JS接口 wx.checkJsApi({ jsApiList: ['chooseImage'], // 須要檢測的JS接口列表,全部JS接口列表見附錄2, success: function(res) { // 以鍵值對的形式返回,可用的api值true,不可用爲false // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"} //調用具體 api 接口 function api(); } }); }); wx.error(function(res){ // config信息驗證失敗會執行error函數,如簽名過時致使驗證失敗,具體錯誤信息能夠打開config的debug模式查看,也能夠在返回的res參數中查看,對於SPA能夠在這裏更新簽名。 alert(JSON.stringify(res)); }); } function api(){ //分享給朋友 wx.onMenuShareAppMessage({ title: title, // 分享標題 desc: desc, // 分享描述 link: linkUrl, // 分享連接,該連接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致 imgUrl: imgUrl, // 分享圖標 type: '', // 分享類型,music、video或link,不填默認爲link dataUrl: '', // 若是type是music或video,則要提供數據連接,默認爲空 success: function () { // 用戶確認分享後執行的回調函數 }, cancel: function () { // 用戶取消分享後執行的回調函數 } }); //分享到朋友圈 wx.onMenuShareTimeline({ title: title, // 分享標題 link: linkUrl, // 分享連接,該連接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致 imgUrl: imgUrl, // 分享圖標 success: function () { // 用戶確認分享後執行的回調函數 }, cancel: function () { // 用戶取消分享後執行的回調函數 } }); //分享到qq wx.onMenuShareQQ({ title: title, // 分享標題 desc: desc, // 分享描述 link: linkUrl, // 分享連接 imgUrl: imgUrl, // 分享圖標 success: function () { // 用戶確認分享後執行的回調函數 }, cancel: function () { // 用戶取消分享後執行的回調函數 } }); //分享到qq空間 wx.onMenuShareQZone({ title: title, // 分享標題 desc: desc, // 分享描述 link: linkUrl, // 分享連接 imgUrl: imgUrl, // 分享圖標 success: function () { // 用戶確認分享後執行的回調函數 }, cancel: function () { // 用戶取消分享後執行的回調函數 } }); // ············更多的api 請參見微信 js-sdk 開發文檔 }
配置過程當中,必定要確保 注入 config 中的參數正確
. 若是配置過程當中,wx.error 彈出 {'errMsg':'config:invalid url domain'}
緣由:
js安全域名配置錯誤(去掉 http://)
ajax 請求的接口填寫錯誤(我就是大意,寫錯了)
配置中出現 {'errMsg':'config fail'}
緣由:多半是輸入 config 的參數錯誤,請檢查 config 參數
在使用 錄音 接口的時候,碰到了不少坑,等我解決完再來分享