Unity基础入门分享Unity技术分享Unity技术分享

安卓和Unity通信集成Alipay

2019-03-08  本文已影响7人  風华绝世

新建安卓项目 , 记下包名 

然后一直下一步    最后一步取消勾选那两个选项 

创建完成之后  点击左上角  切换为Project选项 

然后点击 APP文件夹里面的build.gradle     

把文件开头改成library    然后删除defaultConfig下的applicationId,去掉默认的dependencies下的

compile ‘com.android.support:appcompat-v7:25.0.0'的引入 最后格式为这样  

然后删除values文件夹下的style.xml文件

然后找到main文件夹下的AndroidManifest.xml

然后修改AndroidManifest文件中application下的theme为android自带的主题

然后修改AndroidManifest文件中application下的theme为android自带的主题。同时将<activity android:name=".MainActivity">修改为<activity android:name=“com.android.alipay.MainActivity">

然后添加一行 

<meta-data android:name="unityplayer.UnityActivity" android:value="true" />

最后得到的是这样的 

然后引入Unity的Class包 

找到unity的classes.jar包 

UnityHub下的地址是:  /Applications/Unity/Hub/Editor/2018.2.20f1/PlaybackEngines/AndroidPlayer/Variations/mono/Release/Classes/classes.jar

把他复制到安卓项目app文件夹下的lib文件夹下面  然后右键导入

导入之后 build.gradle文件里面就有他的引用了

然后 把alipay demo里面的类复制进来

然后删除里面的 PayDemoActivity 和 ExternalFragment 两个类   

然后把alipay SDK里面的那个aar文件也复制到libs文件夹里面 

并在app文件夹下的build.gradle文件里面引用 

然后把复制过来的其他每个类的包名都改成当前的包名 

在项目的build.gradle里面新加一段代码

flatDir {

    dirs'libs'

然后写方法给unity调用 

然后先选择build APK  再选Make Project 

编译完成之后  可以在对应的文件夹下找到对应的.aar文件 

然后把它复制到桌面 后缀名改为zip解压出来 

解压完成文件内容是这样的   

然后在unity项目里面引入 

文件夹的顺序是这样的   

把AndroidManifest.xml文件复制到Android文件夹下  然后把classes.jar文件复制到libs文件夹下  然后再找到alipay SDK里面带的那个.aar文件也复制到libs文件夹下面 

然后把整个res文件夹放到Android文件夹下

然后在unity里面新建一个脚本  新建一个按钮   

然后绑定按钮点击事件

  public classpayTest : MonoBehaviour {

privateAndroidJavaObject jo;

publicButton payBtn;

publicButton authBtn;

publicButton testBtn;

// Use this for initialization

    voidStart () {

        AndroidJavaClass jc =

new AndroidJavaClass("com.unity3d.player.UnityPlayer");

        jo = jc.GetStatic(

"currentActivity");

        payBtn.onClick.AddListener(payV2);

        authBtn.onClick.AddListener(authV2);

        testBtn.onClick.AddListener(test);

//jo.Call("payV2");

    }

public voidpayV2()

    {

        jo.Call(

"payV2");

    }

 //这个方法是给安卓调的  支付完成之后  会从安卓调用这个方法    public void showResult(stringresult)

    {

Text text = GameObject.Find("Text").GetComponent<Text>();

        text.text = result;

    }

然后打包成apk 点击按钮可以调起支付宝支付

支付完成之后  会自动调用安卓里面的方法

private Handler mHandler = new Handler() {

然后在安卓里面写一行

UnityPlayer.UnitySendMessage("Canvas","showResult","支付成功" + resultStatus); 

 支付完成之后  会从安卓里面调用Unity的showResult()方法

2019年03月08日17:34:18

上一篇 下一篇

猜你喜欢

热点阅读