miduo_client/Assets/LuaFramework/Scripts/SDK/Proxy/AndroidProxy.cs

127 lines
4.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 问题1参数传递最好改用json...懒得去搞了!!!
* 问题2安卓和IOS端所需的相关参数竟然不同MMP凑合用不改了。。。
*/
using System.Collections;
using UnityEngine;
using System.IO;
using System;
namespace SDK
{
public class AndroidProxy : Proxy
{
public static AndroidJavaObject currentActivity;
private const string CLS_UNITY_PLAYER = "com.unity3d.player.UnityPlayer";
public AndroidProxy()
{
var player = new AndroidJavaClass(CLS_UNITY_PLAYER);
currentActivity = player.GetStatic<AndroidJavaObject>("currentActivity");
}
public override void Init()
{
currentActivity.Call("Init");
}
public override void Login()
{
currentActivity.Call("Login");
}
public override void Exit()
{
currentActivity.Call("BackPressed");
}
public override void SubmitExtraData(SDKSubmitExtraDataArgs args)
{
currentActivity.Call("SubmitExtraData", args.dataType,
args.serverID,
args.serverName,
args.zoneID,
args.zoneName,
args.roleID,
args.roleName,
args.roleLevel,
args.guildID,
args.Vip,
args.moneyNum,
args.roleCreateTime,
args.roleLevelUpTime);
}
public override void Pay(SDKPayArgs args)
{
Debug.Log("consumerId = " + args.roleID +
",consumerName= " + args.roleName +
",mhtCurrency= " + args.coinNum +
",vipLevel= " + args.vip +
",playerName= " + args.guildID +
",roleName= " + args.roleName +
",roleId= " + args.roleID +
",orderDec= " + args.productDesc +
",amount= " + args.price +
",balance= " + "100" +
",goodDec= " + args.productName +
",count= " + args.buyNum +
",goodsId= " + args.productId +
",ext= " + args.extension //GameLogic.Util.Base64Encode(args.extension)
);
currentActivity.Call("Pay",args.productId,
args.productName,
args.productDesc,
args.price,
args.ratio,
args.buyNum,
args.coinNum,
args.zoneId,
args.serverID,
args.serverName,
args.accounted,
args.roleID,
args.roleName,
args.roleLevel,
args.vip,
args.guildID,
args.payNotifyUrl,
args.extension);
//GameLogic.Util.Base64Encode(args.extension));
}
public override bool IsSupportExit()
{
return currentActivity.Call<bool>("IsSupportExit");
}
//sdk获取支付订单号
public override string GetPayOrderID()
{
return currentActivity.Call<string>("GetOrderID");
}
//SDK截屏
public void ShotCapture()
{
StartCoroutine(ScreenShotPNG());
}
IEnumerator ScreenShotPNG()
{
yield return new WaitForEndOfFrame();
int width = Screen.width;
int height = Screen.height;
Texture2D screenShot = new Texture2D(width, height, TextureFormat.RGB24, false);
screenShot.ReadPixels(new Rect(0, 0, width, height), 0, 0);
screenShot.Apply();
byte[] bytes = screenShot.EncodeToPNG();
Destroy(screenShot);
currentActivity.Call("SendScreenshotData", bytes);
}
}
}