Angular4+Ionic3-企業(yè)微信應(yīng)用開(kāi)發(fā)
一豫柬、搭建Ionic3項(xiàng)目工程
(1)告希、配置環(huán)境:
node安裝:參照node官網(wǎng)(http://nodejs.cn/download/)
cnpm淘寶鏡像安裝:
npm install -g cnpm --registry=https://registry.npm.taobao.org
ionic安裝:cnpm install -g ionic
(2)、創(chuàng)建項(xiàng)目:
創(chuàng)建帶tab欄項(xiàng)目:Ionic start project tabs
創(chuàng)建空白頁(yè)項(xiàng)目:Ionic start project blank
(3)烧给、運(yùn)行項(xiàng)目:
安裝依賴:cnpm install
啟動(dòng)項(xiàng)目:ionic serve
二燕偶、企業(yè)微信應(yīng)用開(kāi)發(fā)步驟
(1)、企業(yè)微信API:
????推薦參考:https://work.weixin.qq.com/api/doc#90000/90003/90556
(2)础嫡、具體開(kāi)發(fā)
????1指么、項(xiàng)目目錄構(gòu)成
????2、引入企業(yè)微信相關(guān)文件
????a榴鼎、在index.html頁(yè)面伯诬,引入微信的js文件。
????b巫财、因項(xiàng)目使用的是亞馬遜的服務(wù)器盗似,所以要在開(kāi)發(fā)企業(yè)微信時(shí),需要使用由API Gateway 為 REST API 生成的 JavaScript 開(kāi)發(fā)工具包(此包是由后端生成平项,前端引用)赫舒,從后端處獲取到JavaScript包后,放置在assets文件夾下葵礼,在index.html頁(yè)面中一一引入這些js文件号阿。
????c、從后端處獲取的js文件鸳粉,給改文件下的config加上accessKey和secretKey扔涧。
????3、調(diào)用企業(yè)微信API的文件配置
????????在app文件夾下届谈,新建一個(gè)d.ts文件枯夜,在該文件下定義全局的變量,例如wechat.d.ts艰山,具體如下:
????????配置完成后湖雹,可在具體頁(yè)面中進(jìn)行企業(yè)微信API的調(diào)用,例如監(jiān)聽(tīng)頁(yè)面返回操作:
????4曙搬、獲取code
????在index.html頁(yè)面摔吏,使用緩存的方式存儲(chǔ)code,如下:
????5纵装、在app.component.ts文件下征讲,調(diào)用從后端獲取的api文件下的方法,獲取token橡娄、個(gè)人信息等等诗箍,以下就是怎么調(diào)用后端企業(yè)微信接口,獲取token挽唉、個(gè)人信息滤祖,在本項(xiàng)目中筷狼,所調(diào)用的接口全部是取自后端集成的JavaScript包。
三匠童、開(kāi)發(fā)中遇到的一些問(wèn)題
(1)埂材、集成js-sdk失敗的問(wèn)題,出現(xiàn)invalid signature簽名拋錯(cuò)俏让。
????處理:是URL的問(wèn)題楞遏,根據(jù)js-sdk上面簽名算法的生成上,URL參數(shù)是為解碼后的URL首昔,后端沒(méi)解碼URL寡喝,所以導(dǎo)致簽名拋錯(cuò),前端傳給后端是通過(guò)encodeURIComponent()方法轉(zhuǎn)碼過(guò)后的URL勒奇,而后端拿到前端轉(zhuǎn)碼過(guò)后的URL预鬓,是需要解碼才能生成正確的簽名。