ionic3 微信受權登陸

一、安裝微信插件json

ionic cordova plugin add cordova-plugin-wechat  --variable wechatappid=YOUR_WECHAT_APPID

YOUR_WECHAT_APPID就是你申請的appid
注意:在微信開放平臺建立應用的時候,appid是你的安裝包簽名的md5的值去掉冒號小寫,若是這個不匹配,微信登陸老閃退提示錯誤。segmentfault

二、組件中引入微信服務,定義。api

import { Component } from '@angular/core';
import { NavController, ViewController, LoadingController } from 'ionic-angular';
import { LoginInfoService } from "../../service/login-info.service";
import { Md5 } from "ts-md5/dist/md5";

// 引入微信服務
declare var Wechat: any;

後面既能夠使用Wechat來調用微信裏面的服務了。數組

三、具體代碼微信

weChatAuth() {
        let loading = this.loadingCtrl.create({
            content: "跳轉微信登陸中...",//loading框顯示的內容
            dismissOnPageChange: true, // 是否在切換頁面以後關閉loading框
            showBackdrop: true  //是否顯示遮罩層
        });
        loading.present();
        try {
            let scope = "snsapi_userinfo",
                state = "_" + (+new Date());
            // 1. 獲取code
            Wechat.auth(scope, state, (response) => {
                var appId = "wx3bcebf4b5f8f9c22";
                let appSecret = "a530d135d97dd51cc73659e3874cb254";
                // 2. 獲取token,openID
                Wechat.auth('https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + appId + '&secret=' + appSecret + '&code=' + response.code + '&grant_type=authorization_code', function (accessTokenResponse) {
                    var accessToken = accessTokenResponse.access_token;
                    var openId = accessTokenResponse.openid;
                    console.log(accessTokenResponse);
                    // 3. 獲取用戶信息
                    Wechat.auth('https://api.weixin.qq.com/sns/userinfo?access_token=' + accessToken + '&openid=' + openId + '&lang=zh_CN', function (userInfoResponse) {
                        console.log(userInfoResponse); // 用戶信息

                        // openid    普通用戶的標識,對當前開發者賬號惟一
                        // nickname    普通用戶暱稱
                        // sex    普通用戶性別,1爲男性,2爲女性
                        // province    普通用戶我的資料填寫的省份
                        // city    普通用戶我的資料填寫的城市
                        // country    國家,如中國爲CN
                        // headimgurl    用戶頭像,最後一個數值表明正方形頭像大小(有0、4六、6四、9六、132數值可選,0表明640*640正方形頭像),用戶沒有頭像時該項爲空
                        // privilege    用戶特權信息,json數組,如微信沃卡用戶爲(chinaunicom)
                        // unionid    用戶統一標識。針對一個微信開放平臺賬號下的應用,同一用戶的unionid是惟一的。
                    });
                });
            }, (reason) => {
                alert("Failed: " + reason);
            });
        } catch (error) {
            console.log(error);
        } finally {
            loading.dismiss();
        }

    }

若是不明白簽名相關的問題能夠看我上一篇文章:app

https://segmentfault.com/a/1190000013830970
相關文章
相關標籤/搜索