新建安卓項目 , 記下包名?
然后一直下一步? ? 最后一步取消勾選那兩個選項?
創(chuàng)建完成之后? 點擊左上角? 切換為Project選項?
然后點擊 APP文件夾里面的build.gradle? ? ?
把文件開頭改成library? ? 然后刪除defaultConfig下的applicationId,去掉默認(rèn)的dependencies下的
compile ‘com.android.support:appcompat-v7:25.0.0'的引入 最后格式為這樣 ?
然后刪除values文件夾下的style.xml文件
然后找到main文件夾下的AndroidManifest.xml
然后修改AndroidManifest文件中application下的theme為android自帶的主題僵井。
同時將
<activity android:name=".MainActivity">
修改為
<activity android:name=“com.android.alipay.MainActivity">
上面的是? 包名.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
把他復(fù)制到安卓項目app文件夾下的lib文件夾下面? 然后右鍵導(dǎo)入
導(dǎo)入之后 build.gradle文件里面就有他的引用了
然后 把alipay demo里面的類復(fù)制進來
然后刪除里面的 PayDemoActivity 和 ExternalFragment 兩個類? ?
然后把alipay SDK里面的那個aar文件也復(fù)制到libs文件夾里面?
并在app文件夾下的build.gradle文件里面引用?
然后把復(fù)制過來的其他每個類的包名都改成當(dāng)前的包名?
在項目的build.gradle里面新加一段代碼
flatDir {
? ? dirs'libs'
}?
然后寫方法給unity調(diào)用?
然后先選擇build APK? 再選Make Project?
編譯完成之后? 可以在對應(yīng)的文件夾下找到對應(yīng)的.aar文件?
然后把它復(fù)制到桌面 后綴名改為zip解壓出來?
解壓完成文件內(nèi)容是這樣的? ?
然后在unity項目里面引入?
文件夾的順序是這樣的? ?
把AndroidManifest.xml文件復(fù)制到Android文件夾下? 然后把classes.jar文件復(fù)制到libs文件夾下? 然后再找到alipay SDK里面帶的那個.aar文件也復(fù)制到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");
? ? }
?//這個方法是給安卓調(diào)的? 支付完成之后? 會從安卓調(diào)用這個方法? ? public void showResult(stringresult)
? ? {
Text text = GameObject.Find("Text").GetComponent<Text>();
? ? ? ? text.text = result;
? ? }
然后打包成apk 點擊按鈕可以調(diào)起支付寶支付
支付完成之后? 會自動調(diào)用安卓里面的方法
private Handler mHandler = new Handler() {
然后在安卓里面寫一行
UnityPlayer.UnitySendMessage("Canvas","showResult","支付成功" + resultStatus);?
?支付完成之后? 會從安卓里面調(diào)用Unity的showResult()方法
2019年03月08日17:34:18