Unity微信Android端第三方登陆

开发环境:
Unity2020.3.241f1c1
Andoird Studio

开发准备:
微信开发者账号:注册App应用,从这儿获取包名AppIDApp Secret

一、向微信开放平台注册App应用

1.点击创建应用
Unity微信Android端第三方登陆_第1张图片
2.填写基本信息和平台信息,提交审核
Unity微信Android端第三方登陆_第2张图片
注意:
1.填写的包名在Android Studio中可能要用到
2.签名的获取
在plaer setting中点击KeystoreManager填写好保存,生成xxx.keystore文件,再点击Custom Keystore填写好下面信息就可以了。
Unity微信Android端第三方登陆_第3张图片
打包该app放在手机上
Unity微信Android端第三方登陆_第4张图片
在你的Andorid机上下载安装该Apk工具,然后输入包名获取签名。
Unity微信Android端第三方登陆_第5张图片

3.审核通过后得到AppID然后生成AppSecretUnity微信Android端第三方登陆_第6张图片

二、在Android Studio中导出AAR包共Unity使用

1.打开Android Studio新建一个工程
Unity微信Android端第三方登陆_第7张图片
选择Empty Activity,点击Next创建
Unity微信Android端第三方登陆_第8张图片
2.创建新的模块
Unity微信Android端第三方登陆_第9张图片
选择Android Library 点击Next创建

Unity微信Android端第三方登陆_第10张图片
我这里的Module名为LoginShare
Unity微信Android端第三方登陆_第11张图片

3.在工程中导入Unity安卓开发工具中的Classes.jar文件
一般来说在unity中的如下路径:xxx\Unity 2020.3.24f1c2\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
在这里插入图片描述
将该文件放在我们创建好的模块lib文件夹下
在这里插入图片描述
4.在工程中导入Unity安卓开发工具中的wechat-sdk-android-without-mta-x.x.x.jar文件
在微信开放平台中的操作过于繁琐,这里介绍一种简单的接入方式。
如下图所示,微信 SDK 已迁移到 Maven Central
Unity微信Android端第三方登陆_第12张图片
所以,我们可以直接去它的官网上下载 Naven Central 地址
步骤一
Unity微信Android端第三方登陆_第13张图片
步骤二
Unity微信Android端第三方登陆_第14张图片
步骤三
Unity微信Android端第三方登陆_第15张图片
然后用压缩文件工具打开arr文件,如下图所示
Unity微信Android端第三方登陆_第16张图片
再把classes.jar文件拖到桌面并把名称命名为和arr文件的名称一样,最后把它放到Andorid Studio工程模块中的lib文件夹下图所示
在这里插入图片描述
5.按图下层级放入如下代码,及 AndroidUnityConnecter.java、WXEntryActivity.java、MainActivity.java、AndroidManifest.xml文件的编写
Unity微信Android端第三方登陆_第17张图片
包名文件夹下创建AndroidUnityConnecter.java文件

package com.lyarcloud;

import com.unity3d.player.UnityPlayer;
public  class AndroidUnityConnecter {
   

    private static final String connecterName = "UnityAndroidConnecter"; //通信物体
    private static final String defaultMethodName = "ReceiveAndroidMsg"; //方法

    public static final String UnityTag="Unity";

    //发送消息到Unity
    public static void SendMsgToUnity(String args)
    {
   
        UnityPlayer.UnitySendMessage(connecterName, defaultMethodName,args);
    }

    //发送消息到Unity
    public static void SendMsgToUnity(String methodName,String args)
    {
   
        UnityPlayer.UnitySendMessage(connecterName,methodName,args);
    }

    /*接收到Unity发来的消息*/
    public static void ReceiveUnityMsg(String key,String args)
    {
   
        //根据接受到的消息处理
        switch (key)
        {
   
            case "getstring":
                MainActivity.Ins.GetString(args);
                break;
            case "toast":
                MainActivity.Ins.SayToast(args);
                break;
        }
    }
    public static  void  UnityPig(String msg)
    {
   
        MainActivity.Ins.SayToast(msg);
        SendMsgToUnity("猪猪猪");
    }

    public static  void  Login(String args){
   
        MainActivity.Ins.SayToast(args);
        MainActivity.Ins.Login();
    }
}

包名.wxapi文件夹下创建WXEntryActivity.java文件

package com.lyarcloud.wxapi;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

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.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.unity3d.player.UnityPlayer;

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
   
    private IWXAPI wxapi= null;
    private final  String APPID = "wxbf539d11da238208";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        UnityPlayer.UnitySendMessage("UnityAndroidConnecter","TextMsg","微信API_ING"

你可能感兴趣的:(android,unity,微信)