using UnityEngine; using System.Collections; using LuaInterface; using LuaFramework; #if UNITY_IPHONE || UNITY_IOS using System.Runtime.InteropServices; #endif public class SDKManager : Manager { AndroidJavaObject jo = null; private static LuaFunction m_callback_func = null; private static bool m_is_android = false; private static bool m_is_ios = false; #if UNITY_IPHONE || UNITY_IOS [DllImport("__Internal")] private static extern void CallIOSSDKFunc(string arg); [DllImport("__Internal")] private static extern int CallIOSIntFunc(string arg); [DllImport("__Internal")] private static extern bool CallIOSBoolFunc(string arg); [DllImport("__Internal")] private static extern string CallIOSStringFunc(string arg); #endif void Start() { if (Application.platform == RuntimePlatform.Android) m_is_android = true; if (Application.platform == RuntimePlatform.IPhonePlayer) m_is_ios = true; } void Update () { } public void CallSDKFunc(string data) { if (!AppConst.SupportSDKMode) return; LogManager.LogWarning("CallSDKFunc:" + data); if (m_is_android) { jo.Call("GameCallInto", data); } if(m_is_ios) { #if UNITY_IPHONE || UNITY_IOS CallIOSSDKFunc(data); #endif } } public void RegisterCallbackFunc(LuaFunction func) { if (!AppConst.SupportSDKMode) return; if (m_is_android) { AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); jo = jc.GetStatic("currentActivity"); } m_callback_func = func; } public void CallGameFunc(string func_data) { Debug.Log("CallGameFunc:" + func_data); if ( m_callback_func != null ) { m_callback_func.Call(func_data); } if (func_data.Contains("ReceiveMemoryWarning")) AppConst.IsLowMemoryState = true; } public int CallIntFunc(string data) { if (!AppConst.SupportSDKMode) return 0; if (m_is_android) return jo.Call("CallIntFunc", data); if (m_is_ios) { #if UNITY_IPHONE || UNITY_IOS return CallIOSIntFunc(data); #endif } return 0; } public bool CallBoolFunc(string data) { if (!AppConst.SupportSDKMode) return false; if (m_is_android) return jo.Call("CallBoolFunc", data); if (m_is_ios) { #if UNITY_IPHONE || UNITY_IOS return CallIOSBoolFunc(data); #endif } return false; } public string CallStringFunc(string data) { if (!AppConst.SupportSDKMode) return ""; if (m_is_android) return jo.Call("CallStringFunc", data); if (m_is_ios) { #if UNITY_IPHONE || UNITY_IOS return CallIOSStringFunc(data); #endif } return ""; } }