本文爲 H5EDU 機構官方 HTML5培訓 教程,主要介紹:JavaScript強化教程 —— Cocos2d-JS遊戲快速接入微信JS-SDK
1.申請公衆號 因爲微信只能使用公衆號接入SDK,所以我們必須先註冊一個公衆號。 微信公衆平臺:https://mp.weixin.qq.com/2.設置公衆號 登錄公衆平臺後,點擊左下角的 設置-公衆號設置。右側有一個js接口安全域名的設置,這裏可以綁定3個用到的域名,必須填入頂級域名。 然後點擊左下角的 開發者中心,右側會有一個AppID和一個AppSecret。這兩個先記錄下來,過後會用到。 3.生成token 打開頁面 微信公衆平臺接口調試工具 並且填入剛纔的appid和secret,點擊檢查問題。記錄下返回結果裏面的“access_token”的值。 4.獲取ticket 複製這個鏈接:https://api.weixin.qq.com/cgi- ... en%3D填寫剛剛獲取的access_token&type=jsapi 並在裏面的access_token=後面填入剛剛獲取的access_token(對的,就是那一串亂碼一樣的東西),回車!! 然後把“ticket”的值複製出來,並保存起來,這個就是當前appid的ticket了。 5.生成簽名 打開微信JS接口簽名校驗工具填入相應的數據: 1)jsapi_ticket: 填入上一步獲取的ticket 2)noncestr: 這裏隨機生成一個字符串填進去(VQhYOUJRz6RolHqN) 3)timestamp: 這裏填入一個時間戳,去掉毫秒的3位(如:1420870884) - 這裏儘量寫ticket生成後的一段時間,new Date() - 0可以獲取當前的時間戳 4)url: 準備放頁面的地址(域名必須在第二部中設置到安全域名內,如:http://www.cocos2d-x.org/wechat.html) 點擊生成簽名。記錄下下面出現的signature這個值。 6.頁面引入微信SDK並初始化 在頁面中加入: <script src="http://res.wx.qq.com/open/js/j ... gt%3B並且執行初始化: wx.config({ debug: true, appId: '第二步獲取的AppID', timestamp: 第五步填入的那個時間戳, nonceStr: '第五步填入的隨機字符串', signature: '第五步生成的signature值', jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'hideMenuItems', 'showMenuItems', 'hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem', 'translateVoice', 'startRecord', 'stopRecord', 'onRecordEnd', 'playVoice', 'pauseVoice', 'stopVoice', 'uploadVoice', 'downloadVoice', 'chooseImage', 'previewImage', 'uploadImage', 'downloadImage', 'getNetworkType', 'openLocation', 'getLocation', 'hideOptionMenu', 'showOptionMenu', 'closeWindow', 'scanQRCode', 'chooseWXPay', 'openProductSpecificView', 'addCard', 'chooseCard', 'openCard' ] }); jsApiList填入的是當前需要使用的接口,需要注意的是,如果公衆號不具備某些接口的權限,填進去也無法執行。 這時候將頁面上傳到第五步填入的url地址,並在微信中打開,應該能夠看見config:ok的提示。 如果出現了Invalid Url或者Invalid Domain等提示,說明公衆號配置裏面出現了問題。而出現Invalid signature的話,則是signature生成出現了問題,檢查下timestamp以及隨機字符串等是否正確。 到這裏我們就可以酣暢淋漓的使用微信的SDK啦。 比方說我們判斷wifi加載音頻,而非wifi情況則不加載任何音頻文件: //資源列表 var audioResList = [ "bgMusic.mp3", "changeMusice.pm3" ]; var audioSwitch = true; wx.ready(function () { wx.getNetworkType({ success: function (res) { if(res.networkType != "wifi"){ audioResList.lenght = 0; audioSwitch = false; } start(); }, fail: function (res) { audioResList.lenght = 0; audioSwitch = false; start(); } }); }); 在遊戲中判斷網絡並提示相關信息: wx.getNetworkType({ success: function (res) { var networkType = res.networkType; // 返回網絡類型2g,3g,4g,wifi if(networkType == "2g"){ if(!confirm("您還在使用2g網絡?流量還夠嗎?是否繼續訪問遊戲?")){ wx.closeWindow(); } } else if(networkType == "3g"){ alert("您正在使用4G網絡訪問喵,速度還行嗎?"); } else if(networkType == "4g"){ alert("哇,您正在使用4G網絡訪問喵,快嗎?"); } else if(networkType == "wifi"){ alert("您當前正在使用wifi, 不用擔心流量喲!"); } else { alert("來自星星的你,使用的是什麼網絡呢?"); } } }); 在遊戲中修改分享的相關信息: wx.onMenuShareAppMessage({ title: title, // 分享標題 desc: message, // 分享描述 link: wxFriend.link, // 分享鏈接 imgUrl: wxFriend.imgUrl, // 分享圖標 success: function () { // 用戶確認分享後執行的回調函數 alert("喵喵感謝您!"); }, cancel: function () { // 用戶取消分享後執行的回調函數 } });