Android 微信原生登录

1.获取code值:

①打开网址,找到android指南,导入依赖

/*微信登录*/
    implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

②加入权限

 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

③封装的微信工具包,添加进去
WeiXinUtil

package com.bw.movie.utils;

import android.content.Context;

import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;

/**
 * date:2018/12/26
 * author:
 * function:微信工具类
 */
public class WeiXinUtil {
    // APP_ID 替换为你的应用从官方网站申请到的合法appID
    public static  String APP_ID = "wxb3852e6a6b7d9516";

    // IWXAPI 是第三方app和微信通信的openApi接口
    private WeiXinUtil() {

    }
    public  static  boolean success(Context context){
        //判断是否安装过微信
        if (WeiXinUtil.reg(context).isWXAppInstalled()) {
            return  true;
        }else {
            return false;
        }
    }
    public static IWXAPI reg(Context context){
        if (context!=null) {
            //AppConst.WEIXIN.APP_ID是指你应用在微信开放平台上的AppID,记得替换。
            IWXAPI wxapi = WXAPIFactory.createWXAPI(context, APP_ID, true);
            //注册到微信
            wxapi.registerApp(APP_ID);
            return wxapi;
        }else {
            return  null;
        }
    }
   /* //支付
    public static void  weiXinPay(Bean_OrderSuccessBean bean){
        IWXAPI wxapi = WXAPIFactory.createWXAPI(App.context, APP_ID, true);
        //注册到微信
        wxapi.registerApp(APP_ID);

        PayReq payReq = new PayReq();
        payReq.appId=bean.getAppId();
        payReq.prepayId=bean.getPrepayId();
        payReq.partnerId=bean.getPartnerId();
        payReq.nonceStr=bean.getNonceStr();
        payReq.timeStamp=bean.getTimeStamp();
        payReq.sign=bean.getSign();
        payReq.packageValue=bean.getPackageValue();
        Log.d("",payReq.toString()+"111111");
        wxapi.sendReq(payReq);
    }*/

}

④添加movie.key,
在这里插入图片描述
⑤在model的builder文件中android添加以下:

 /*微信获取code值*/
    signingConfigs {
        debug {
            storeFile file('movie.keystore')
            keyAlias "bw_movie"
            storePassword "123456"
            keyPassword "123456"
        }
    }

⑥在点击微信登录事件中,写入一下,判断当前真机或者模拟器是否有微信

				//微信登录
                if (!WeiXinUtil.success(this)) {
                    Toast.makeText(this, "请先安装应用", Toast.LENGTH_SHORT).show();
                } else {
                    //  验证
                    SendAuth.Req req = new SendAuth.Req();
                    req.scope = "snsapi_userinfo";
                    req.state = "wechat_sdk_demo_test";
                    WeiXinUtil.reg(MainActivity.this).sendReq(req);
                }

⑦创建wxapi包,和WXEntryActivity,实现接口IWXAPIEventHandler,有两个方法,在 方法里边写入一下:
在这里插入图片描述
⑧在WXEntryActivity的onCreate里边加入这句话:
WeiXinUtil.reg(WXEntryActivity.this).handleIntent(getIntent(),this);
在这里插入图片描述
⑨在清单文件WXEntryActivity中添加一下:
在这里插入图片描述

⑩成功打印log日志,code值
在这里插入图片描述

(11)当我们获取到code值时,就可以进行网络请求,参数只有一个code值,post请求。

2.进行retrofit网络请求,传入参数code值,返回成功时,判断是否登录成功,如果登录成功,可以把头像名字传人到我的页面,把userid和sessionid存起来。

在这里插入图片描述
在这里插入图片描述

发布了57 篇原创文章 · 获赞 12 · 访问量 8380
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览