CocosCreator接入原生android微信登录。

准备工作

1.环境准备(cocos打包环境,Android studio 环境什么的,这里不做介绍,不会自行百度 )
2.去微信开发平台申请app的APP_ID,和APP_SECRET

代码编写

1.先在cocos creator 中构建,构建完成之后用android studio直接打开,打开 build.gradle 文件中,添加如下依赖即可需要联网(保证网络设置可以成功从 jcenter 下载微信 SDK ):

dependencies {
    api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
}

2.添加权限





3.编写WXEntryActivity,(注意要写在wxapi文件下面)网上很多现成的可以拷贝修改

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Wechat.iwxapi.handleIntent(getIntent(),this);
    }
    @Override
    public void onReq(BaseReq baseReq) {

    }
    @Override
    public void onResp(BaseResp baseResp) {
        Log.d("cocos","on login BaseResp"+baseResp);
        if(baseResp instanceof SendAuth.Resp){
            if(baseResp.errCode==BaseResp.ErrCode.ERR_OK){
                Wechat.OnLoginSuccess(((SendAuth.Resp) baseResp).code);
            }else{
                Wechat.OnLoginFail();
            }
        }
        finish();
    }
}

4.注册到微信

  /**
     *注册到微信  WXAppid  指微信开放平台注册的Appid
     */
    private void WxLogin() {
        IWXAPI api = WXAPIFactory.createWXAPI(this, WXAppid, true);
        api.registerApp(WXAppid);
        if (api == null || !api.isWXAppInstalled()) {
          Toast.makeText(this, "您尚未安装微信", Toast.LENGTH_SHORT).show();
        } 
    }
  /**
     *登录微信
     */
   public static void Login() {
        SendAuth.Req req = new SendAuth.Req();
        req.scope = "snsapi_userinfo";
        req.state = "wechat_sdk_aifuns";
        iwxapi.sendReq(req);
    }

5.在你的包名相应目录下新建一个 wxapi 目录,并在该 wxapi 目录下新增一个 WXEntryActivity 类,该类继承自 Activity(例如应用程序的包名为 net.sourceforge.simcpux,则新添加的类如下图所示)

package net.sourceforge.simcpux.wxapi; //包名

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

import com.sdk.wechat.Wechat;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Wechat.iwxapi.handleIntent(getIntent(),this);
    }

    @Override
    public void onReq(BaseReq baseReq) {

    }

    @Override
    public void onResp(BaseResp baseResp) {
        Log.d("cocos","on login BaseResp"+baseResp);
        if(baseResp instanceof SendAuth.Resp){
            if(baseResp.errCode==BaseResp.ErrCode.ERR_OK){
            	//这里执行登录成功后办法
                //Wechat.OnLoginSuccess(((SendAuth.Resp) baseResp).code);
            }else{
           		//这里执行登录失败后办法
                Wechat.OnLoginFail();
            }
        }
        finish();
    }
}

6.在 manifest 文件里面加上 WXEntryActivity



7.获取到了code==>通过code获取refresh_token ==>然后获取用户信息(这个一般都是后端获取,前端集成sdk到这基本上结束了,本来想和支付一起的,由于忙(lan),支付留给下次了)。

你可能感兴趣的:(CocosCreator接入原生android微信登录。)