登陸:web
一、在微信開放平臺註冊開發者賬號,並擁有一個已審覈經過的移動應用,並得到相應的AppID和AppSecret,申請微信登陸且經過審覈後,可開始接入流程。json
二、經過cordova添加微信插件;進入項目的目錄下,運行命令api
ionic cordova plugin add cordova-plugin-wechat --variable wechatappid=AppID(就是你申請的AppID)微信
三、微信須要在編譯文件中聲明變量,declare let Wechat;微信開發
四、微信受權登陸,也是最重要的一步,獲取code,爲獲取access_token提供參數
wechatLogin(){
let loading = this.loadingCtrl.create({
content: "跳轉微信登陸中...",//loading框顯示的內容
dismissOnPageChange: true, // 是否在切換頁面以後關閉loading框
showBackdrop: true //是否顯示遮罩層
});
loading.present();
try {
let scope = "snsapi_userinfo",
state = "_" + (+new Date());
Wechat.auth(scope, state, (response) => {
let res = response;app
console.log(JSON.stringify(res))
//在調用service的getAccessToken方法獲取access_token,和acopenid,
ionic
//而後再service的getWechatUserInfo方法獲取微信用戶的基本信息,最後保存登陸,完成
}, (reason) => {
this
console.log(reason);
});
} catch (error) {
url
console.log(error);
} finally {
loading.dismiss();
}
}spa
五、獲取access_token和openid,這個方法接口放在service.ts文件裏,由ts調用
getAccessToken(data){
//這裏注意參數grant_type,官方文檔上說的值填寫authorization_code,實際上就是填寫的值是:"authorization_code";就行,不要理解成其餘什麼code
let url ="https://api.weixin.qq.com/sns/oauth2/access_token?appid=??&secret=??&grant_type=authorization_code";
url = url+"&code="+data.code;
return this.http.get(url, {}).toPromise().then(response => {
return response.json();
}).catch(CommonService.handleError);
}
六、經過access_token和openid獲取用戶信息,這個方法接口放在service.ts文件裏,由ts調用
getWechatUserInfo(AccessToken,Openid){
let url="https://api.weixin.qq.com/sns/userinfo"
url = url+"?access_token="+AccessToken+"&openid="+Openid;
return this.http.get(url, {}).toPromise().then(response => {
return response.json();
}).catch(CommonService.handleError);
}
分享:
一、上面的一、2步須要操做一次
二、代碼
//標題
title: string = "分享的標題";
//描述
description: string = "簡單描述!";
//分享連接
link: string = "分享後點擊查的url";
//分享圖片
image: string = "圖片連接";
//分享的目標://0:微信好友,1:朋友圈
scene: number=0;
wxShare() {
try {
Wechat.share({
// text: msg,
message: {
title: this.title,
description: this.description,
thumb: "",
media: {
type: Wechat.Type.WEBPAGE,
webpageUrl: url
}
},
scene: scene == 0 ? Wechat.Scene.SESSION : Wechat.Scene.Timeline // share to Timeline
}, function () {
console.log("分享成功");
}, function (reason) {
console.log("分享失敗");
});
} catch (error) {
console.log(error);
}
}
//開發注意:APPID的一致性,須要作的功能在微信開發平臺上相應的權限是否獲取,還有就是該微信的相關操做不能使用真機聯調,上面有看不明白的也能夠查閱微信開發平臺官方文檔。