微信公眾號
普通訂閱號功能能直接使用微信自帶編輯器霞掺,生成圖文消息骂束,當(dāng)需要使用部分功能時,僅僅使用微信的片機(jī)器不能滿足要求盗忱,需要開發(fā)者直接對微信公眾號進(jìn)行開發(fā)
簡述一下開發(fā)過程
0.進(jìn)入開發(fā)者模式
進(jìn)入微信公眾平臺,左側(cè)開發(fā)選項——基本配置羊赵,開通微信開發(fā)者選項
前端人員直接進(jìn)入開發(fā)者工具——開發(fā)者文檔——微信網(wǎng)頁開發(fā)——微信JS——SDK說明文檔趟佃,查看開發(fā)步驟
開發(fā)步驟:微信JS-SDK說明文檔
1.綁定域名:
GIT暫時就不說了,寫號的文件記得上傳到服務(wù)器再跟微信的JS的域名進(jìn)行綁定
設(shè)置-公眾號設(shè)置-JS接口安全域名(服務(wù)器地址/新浪云應(yīng)用地址)
注意:必須將微信提供的 TXT 文件放入應(yīng)用地址的根目錄昧捷,否則不能綁定接口 文件名:MP_verify_lEpLf31RqezmXOaj.txt
2.引入JS文件:
在主體頁面引入調(diào)用JS接口的JS文件:http://res.wx.qq.com/open/js/jweixin-1.0.0.js
同時主體頁面修改為php文件闲昭,在文件頭添加如下話語:
<?php
error_reporting(E_ERROR);
require_once "jssdk.php";
$jssdk = new JSSDK("wx20a0b647035a14b3"http://appID, "dfeb6add21153d39932cea45b494fece")//密鑰;
$signPackage = $jssdk->GetSignPackage();
?>
這樣主體文件就變?yōu)榱藀hp文件,要調(diào)用微信的接口還需要引入其他文件
sample
注:php文件夾中的三個文件
3.通過config接口注入權(quán)限驗證配置
直接代碼說話靡挥,配置需要的功能和網(wǎng)頁的鏈接
wx.config({
debug: true,
appId: '<?php echo $signPackage["appId"];?>',
timestamp: <?php echo $signPackage["timestamp"];?>,
nonceStr: '<?php echo $signPackage["nonceStr"];?>',
signature: '<?php echo $signPackage["signature"];?>',
jsApiList: [
// 所有要調(diào)用的 API 都要加到這個列表中
//相冊或相機(jī)
'chooseImage',
//打開內(nèi)置地圖
'openLocation',
//查看網(wǎng)絡(luò)狀況
'getNetworkType',
//掃一掃
'scanQRCode'
]
});
以后想添加不同的功能直接在jsApiList中添加就好
4.ready 添加接口事件
wx.ready(function () {
// 在這里調(diào)用 API
var div1 = document.querySelector("#box :nth-of-type(1)");
var div2 = document.querySelector("#box :nth-of-type(2)");
var div3 = document.querySelector("#box :nth-of-type(3)");
var div4 = document.querySelector("#box :nth-of-type(4)");
//相冊或相機(jī)
div1.onclick = function () {
wx.chooseImage({
count: 9, // 默認(rèn)9
sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖汤纸,默認(rèn)二者都有
sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機(jī),默認(rèn)二者都有
success: function (res) {
var localIds = res.localIds; // 返回選定照片的本地ID列表芹血,localId可以作為img標(biāo)簽的src屬性顯示圖片
alert(localIds);
}
});
}
//內(nèi)置地圖
div2.onclick = function () {
wx.openLocation({
latitude: 39.9046363143,
longitude: 116.4071136987,
name: '北京 故宮',
address: '北京長安街XXX號',
scale: 10,
infoUrl: 'http://weixin.qq.com'
});
}
//手機(jī)網(wǎng)絡(luò)狀態(tài)
div3.onclick = function () {
wx.getNetworkType({
success: function (res) {
var networkType = res.networkType; // 返回網(wǎng)絡(luò)類型2g贮泞,3g,4g幔烛,wifi
alert(networkType);
}
});
}
//掃一掃
div4.onclick = function () {
wx.scanQRCode({
needResult: 0, // 默認(rèn)為0啃擦,掃描結(jié)果由微信處理,1則直接返回掃描結(jié)果饿悬,
scanType: ["qrCode","barCode"], // 可以指定掃二維碼還是一維碼令蛉,默認(rèn)二者都有
success: function (res) {
var result = res.resultStr; // 當(dāng)needResult 為 1 時,掃碼返回的結(jié)果
}
});
}
});
5.通過error接口處理失敗驗證
wx.error(function(res){
// config信息驗證失敗會執(zhí)行error函數(shù)狡恬,如簽名過期導(dǎo)致驗證失敗珠叔,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數(shù)中查看弟劲,對于SPA可以在這里更新簽名祷安。
});