一、公眾號開發與html5移動端開發區別
從前端開發角度上來說,沒有什么差別.不一樣的有:1)需要網頁授權登錄,2)使用微信的一些方法(拍照 掃描等)需要引入wx-js sdk.
jsSdk引入步驟分為3部(此處以vue項目中為例):
1、需要在vue項目中安裝weixin-js-sdk
2、在頁面中需要用到wx的一些方法中引入js-sdk,引入方法:import wx from 'weixin-js-sdk';
3、開始正在的使用wx的js-sdk
??????由于使用微信js需要進行授權配置,所以需要使用ajax請求從服務端獲取微信jssdk的授權參數
- 首先需要向服務器發送一個ajax請求 (我們需要將當前頁面路徑(不包含#以及以后的數據)傳給后臺,從服務端獲取微信jssdk的授權參數)
- 調用wx.config()方法,獲取到使用js-sdk的權限,以及配置需要使用的sdk
- 使用具體的sdk方法(分兩種情況a: 在wx.config()頁面使用,需要確保wx.config()已經成功拿到了授權參數,常常需要在wx.ready()中調用js-sdk方法;b:頁面點擊按鈕觸發js-sdk方法,可以直接使用)
(具體有哪些方法可以查看:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html)
(在使用jsSDK一般使用hash路由模式)
借用別人寫的方法:
method: 'post',
url: 'http://my.service.com/index.php/opcode/6002', //請求后端接口
data:{ url:location.href.split('#')[0] } //向服務端提供授權url參數,并且不需要#后面的部分
}).then((res)=>{
debug: true, // 開啟調試模式(上線的時候需要關閉)
appId: res.appId, // 必填,企業號的唯一標識,此處填寫企業號corpid
timestamp: res.timestamp, // 必填,生成簽名的時間戳
nonceStr: res.nonceStr, // 必填,生成簽名的隨機串
signature: res.signature,// 必填,簽名,見附錄1
jsApiList: ['scanQRCode'] // 必填,需要使用的微信API接口列表,所有JS接口列表見附錄2
});
})
二、關于微信授權問題(經常需要獲取微信頭像和昵稱)
需要進行網頁授權
- 當用戶關注了公眾號后,默認已經授權成功咯,此時后端能夠拿到客戶的微信信息(頭像\昵稱等)
- 當用戶未關注公眾號,直接打開網頁鏈接,會有授權彈框(網頁授權可以由后端處理,具體情況需要前后端協商)
三、常遇問題:
1、在使用js-sdk時,需要在微信公眾號平臺配置相應的域名
2、在jssdk的授權參數獲取成功之前調用了js-sdk方法
3、需要在wx.config中的jsApiList配置需要使用的js-sdk方法
4、分享功能需要注意:
- 使用的分享圖片必須為絕對路徑;
- 圖片協議必須和網站一一對應(網站是http,則圖片引用的也是http的圖片路徑);
- 分享朋友可以設置標題、描述、圖片、跳轉鏈接;分享到朋友圈可設置標題、圖片、跳轉鏈接;
- 目前情況下,分享頁文字限制(標題:最多30個 描述內容:不超過36 分享圖片:正方形)