ionic3+angular4的三方微信開發(登陸and分享)

登陸: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的一致性,須要作的功能在微信開發平臺上相應的權限是否獲取,還有就是該微信的相關操做不能使用真機聯調,上面有看不明白的也能夠查閱微信開發平臺官方文檔。
相關文章
相關標籤/搜索