Пример #1
0
        public void OnPostDeviceInitFinished(string url, string error, string reply, System.Object userData)
        {
            int       result    = 0;
            Hashtable hashtable = MiniJSON.JsonDecode(reply) as Hashtable;

            if (hashtable != null)
            {
                result = DBTextResource.ParseI(hashtable["result"].ToString());
            }

            bool      ret           = false;
            string    errorMsg      = "";
            Hashtable argsHashtable = hashtable["args"] as Hashtable;

            if (result == 1)
            {
                if (argsHashtable != null)
                {
                    string deviceMark = argsHashtable["device_mark"].ToString();

                    if (GlobalConfig.Instance.DeviceMark.Equals(deviceMark) == false)
                    {
                        GlobalConfig.Instance.DeviceMark = deviceMark;

                        GlobalSettings.GetInstance();
                        UserPlayerPrefs.Instance.SetString("DeviceMark", deviceMark);
                        UserPlayerPrefs.Instance.Save();
                    }

                    ret = true;
                }
            }
            else
            {
                if (argsHashtable != null)
                {
                    errorMsg = argsHashtable["error_msg"].ToString();
                }
            }

            if (ret == true)
            {
                // DeviceInit成功
                ControlServerLogHelper.Instance.PostPlayerFollowRecord(PlayerFollowRecordSceneId.DeviceInitEnd, "", false);
                ControlServerLogHelper.Instance.PostCloudLadderEventAction(CloudLadderMarkEnum.boot_app);
            }
            else
            {
                // DeviceInit失败
                if (string.IsNullOrEmpty(errorMsg) == true)
                {
                    if (string.IsNullOrEmpty(error) == false)
                    {
                        ControlServerLogHelper.Instance.PostPlayerFollowRecord(PlayerFollowRecordSceneId.DeviceInitFail, error, false);
                    }
                    else
                    {
                        ControlServerLogHelper.Instance.PostPlayerFollowRecord(PlayerFollowRecordSceneId.DeviceInitFail, "Unknown error", false);
                    }
                }
                else
                {
                    ControlServerLogHelper.Instance.PostPlayerFollowRecord(PlayerFollowRecordSceneId.DeviceInitFail, errorMsg, false);
                }
            }

            // action保存了NewInitSceneLoader中的函数,调用之后需要赋空
            if (mPostDeviceInitFinishedCallback != null)
            {
                mPostDeviceInitFinishedCallback.Invoke(ret);
                mPostDeviceInitFinishedCallback = null;
            }
        }
Пример #2
0
        public GlobalConfig()
        {
            LoginInfo = new LoginInfoStruct();

            IBridge bridge = DBOSManager.getDBOSManager().getBridge();

            mDeviceMark = bridge.getDBMachineId();
            mSDKName    = bridge.getSDKName();
            mAppDocPath = bridge.getGameDocPath();
            mAppResPath = bridge.getGameResPath();

            mAppId      = 0;
            mChannel    = "";
            mSubChannel = "";

            // 从SDKName中解析出Channel
            string[] sdkNameStrs = mSDKName.Split('_');
#if UNITY_ANDROID
            if (sdkNameStrs.Length >= 3)
            {
                mAppId   = DBTextResource.ParseI_s(sdkNameStrs[1], 0);
                mChannel = sdkNameStrs[2];
            }
#elif UNITY_IPHONE
            if (sdkNameStrs.Length >= 2)
            {
                mAppId = DBTextResource.ParseI_s(sdkNameStrs[1], 0);
            }
#else
#endif

            int appId = bridge.getAppID();
            if (appId > 0)
            {
                mAppId = appId;
            }
            string channel = bridge.getCurrChannel();
            if (string.IsNullOrEmpty(channel) == false)
            {
                mChannel = channel;
            }
            string subChannel = bridge.getSubChannel();
            if (string.IsNullOrEmpty(subChannel) == false)
            {
                mSubChannel = subChannel;
            }

            // 获取游戏启动时间戳,非安卓平台在NewInitSceneLoader那边获取
#if UNITY_ANDROID
            mStartTimeStamp = bridge.getStartTimeStamp();
#endif

            if (bridge.isBridgeEnable() == false)
            {
                mIsEnterSDK   = false;
                mPlatformName = "";

#if UNITY_ANDROID
                mPlatformName = "android";
#elif UNITY_IPHONE
                mPlatformName = "ios";
#elif UNITY_EDITOR
                mPlatformName = "editor";
#else
                mPlatformName = "win";
#endif
                return;
            }

#if UNITY_ANDROID
#if HD_RESOURCE // 高清版
            mIsEnterSDK     = false;
            Const.IsFullApp = true;
#else
            mIsEnterSDK = true;
#endif

            mPlatformName = "android";
            mDeviceMark   = bridge.getDBMachineId();
#elif UNITY_IPHONE
            mIsEnterSDK = true;
            //mIsEnterUpgradeScene = false;
            mPlatformName = "ios";
            // iOS的DeviceMark需要从本地保存的文件读取
            GlobalSettings.GetInstance();
            mDeviceMark = UserPlayerPrefs.Instance.GetString("DeviceMark", "");

#if FULL_APP
            mIsEnterSDK     = true;
            Const.IsFullApp = true;
#else
            mIsEnterSDK = true;
#endif
#elif UNITY_STANDALONE_WIN
            mPlatformName = "win";
#else
            mPlatformName = "android";
            mDeviceMark   = bridge.getDBMachineId();
#endif

            mIsDebugMode = false;

#if TEST_HOST || CMPT_RELEASE
            //通过SDK登录
            mIsEnterSDK = false;
#if UNITY_ANDROID || UNITY_IPHONE
            mIsEnterSDK = false;
#endif
#endif
        }