Beispiel #1
0
    /// <summary>
    /// 点击登录按钮
    /// </summary>
    public void OnLoginClick()
    {
        if (!mIsAgree)
        {
            Global.Inst.GetController <CommonTipsController>().ShowTips("请先同意用户协议", "确定");
            return;
        }
        //登录
        //登录成功回调
        CallBack callback = () =>
        {
            Global.Inst.GetController <MainController>().OpenWindow();
            Close();
        };

#if WECHAT
        Global.Inst.GetController <NetLoadingController>().ShowLoading(true);
        string            loginStr = PlayerPrefs.GetString("wechat_login_data", "");//获取保存到本地的登录信息
        LoginSR.SendLogin data     = null;
        if (!string.IsNullOrEmpty(loginStr))
        {
            data = Json.Deserialize <LoginSR.SendLogin>(loginStr);
        }
        if (data != null && !string.IsNullOrEmpty(data.openId))//如果登录信息不为空就直接登录
        {
            Global.Inst.GetController <LoginController>().LoginToServer(data, () => {
                callback();
            });
        }
        else//SDK登录
        {
            Global.Inst.GetController <NetLoadingController>().ShowLoading(true);
            SixqinSDKManager.Inst.AuthPlat(cn.sharesdk.unity3d.PlatformType.WeChat, (d) =>
            {
                Global.Inst.GetController <LoginController>().LoginToServer(d, () =>
                {
                    callback();
                });
            });
        }
#else
        string id = mInput.value;
        if (string.IsNullOrEmpty(id))
        {
            Global.Inst.GetController <CommonTipsController>().ShowTips("id不能为空");
            return;
        }
        LoginSR.SendLogin data = new LoginSR.SendLogin();
        data.openId   = id;
        data.nickname = "特伦苏" + id;
        data.sex      = 1;
        data.headUrl  = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1532170478982&di=8b36bc5c0de739edde5e0b6e40784fde&imgtype=0&src=http%3A%2F%2Ftouxiang.yeree.com%2Fpics%2F4a%2F3756897.jpg";
        PlayerPrefs.SetString("2710_login", id);
        Global.Inst.GetController <LoginController>().LoginToServer(data, () => {
            callback();
        });
#endif
    }
Beispiel #2
0
    /// <summary>
    /// 登录大厅服务器
    /// </summary>
    /// <param name="req"></param>
    public void LoginToServer(LoginSR.SendLogin req, CallBack call)
    {
        LoginModel.Inst.LoginData = req;
        //连接服务器
        ConnectServer(() =>
        {
            //服务器连接成功后登录服务器
            NetProcess.SendRequest <LoginSR.SendLogin>(req, ProtoIdMap.CMD_Login, (msg) =>
            {
                LoginSR.LoginBack data = msg.Read <LoginSR.LoginBack>();
                if (data.code == 1)
                {
                    if (Application.platform != RuntimePlatform.WindowsEditor && Application.platform != RuntimePlatform.OSXEditor)
                    {
                        SixqinSDKManager.Inst.SendMsg(SixqinSDKManager.GET_INSTALL_DATA);//发送扫二维码添加的好友
                    }
                    PlayerModel.Inst.Token    = data.data.userInfo.token;
                    PlayerModel.Inst.UserInfo = data.data.userInfo;
                    if (Application.platform != RuntimePlatform.WindowsEditor && Application.platform != RuntimePlatform.OSXEditor)
                    {
                        //SixqinSDKManager.Inst.InitJPUSH(PlayerModel.Inst.UserInfo.userId);//初始化jpush
                    }
                    ////公众号
                    //PlayerModel.Inst.PublicSign = data.data.publicSign;
                    //广播
                    MainViewModel.Inst.BroadMessage.Clear();

                    Global.Inst.GetController <MainController>().SendGetNotice();
                    if (!string.IsNullOrEmpty(data.roomId))//在房间中
                    {
                        Global.Inst.GetController <XXGoldFlowerGameController>().SendJoinRoomReq(data.roomId);
                    }
                    else
                    {
                        if (call != null)
                        {
                            call();
                        }
                    }
                }
                else if (data.code == 12)
                {
                    PlayerModel.Inst.Token    = data.data.userInfo.token;
                    PlayerModel.Inst.UserInfo = data.data.userInfo;
                    if (Application.platform != RuntimePlatform.WindowsEditor && Application.platform != RuntimePlatform.OSXEditor)
                    {
                        SixqinSDKManager.Inst.InitJPUSH(PlayerModel.Inst.UserInfo.userId);//初始化jpush
                    }
                    Global.Inst.GetController <GamePatternController>().ConnectGameServer(data.data.gameServer.ip, int.Parse(data.data.gameServer.port));
                }
                else
                {
                    GameUtils.ShowErrorTips(data.code);
                }
            });
        });
    }
Beispiel #3
0
    /// <summary>
    /// 登录到大厅
    /// </summary>
    public void LoginToMainServer(string ip, int port)
    {
        LoginSR.SendLogin req = new LoginSR.SendLogin();
        req.token = PlayerModel.Inst.Token;
        if (string.IsNullOrEmpty(req.token))
        {
            return;
        }
        NetProcess.SendRequest <LoginSR.SendLogin>(req, ProtoIdMap.CMD_Login, (msg) =>
        {
            LoginSR.LoginBack data = msg.Read <LoginSR.LoginBack>();
            if (data.code == 1)
            {
                Scene now = SceneManager.GetActiveScene();
                if (now.name != "HALL" && now.name != "Start")
                {
                    SceneManager.LoadScene("HALL");
                    GC.Collect();
                    Resources.UnloadUnusedAssets();
                }

                MainViewModel.Inst.mNowIp   = ip;
                MainViewModel.Inst.mNowPort = port;

                PlayerModel.Inst.Token    = data.data.userInfo.token;
                PlayerModel.Inst.UserInfo = data.data.userInfo;
                SendGetNotice();
                OpenWindow();

                List <string> names = new List <string>();
                names.Add(typeof(MainView).Name);
                BaseView.CloseAllViewBut(names);
            }
            else
            {
                if (data.code == 2)
                {
                    Global.Inst.GetController <CommonTipsController>().ShowTips("您的登录已过期,请重新登录", "确定", true, () =>
                    {
                        Global.Inst.GetController <LoginController>().LoginOut();
                    }, null, null, "登录异常");
                }
                else
                {
                    GameUtils.ShowErrorTips(data.code);
                }
            }
        });
    }
Beispiel #4
0
 public void OnLoginBtnClick()
 {
     if (string.IsNullOrEmpty(mAccount.value))
     {
         Global.Inst.GetController <CommonTipsController>().ShowTips("账号不能为空!");
         return;
     }
     if (string.IsNullOrEmpty(mPwd.value))
     {
         Global.Inst.GetController <CommonTipsController>().ShowTips("密码不能为空!");
         return;
     }
     LoginSR.SendLogin req = new LoginSR.SendLogin();
     req.account  = mAccount.value;
     req.password = GameUtils.GetMd5(mPwd.value);
     Global.Inst.GetController <LoginController>().LoginToServer(req, () =>
     {
         Global.Inst.GetController <MainController>().OpenWindow();
         Global.Inst.GetController <LoginController>().CloseWindow();
     });
 }
Beispiel #5
0
    /// <summary>
    /// 解析登录信息
    /// </summary>
    /// <param name="uuInfo"></param>
    /// <param name="result"></param>
    /// <returns></returns>
    private LoginSR.SendLogin GetLoginData(Hashtable uuInfo, Hashtable result, PlatformType type)
    {
#if UNITY_ANDROID
        if (uuInfo.Contains("openID") || uuInfo.Contains("res"))
        {
            LoginSR.SendLogin req = new LoginSR.SendLogin();
            req.headUrl  = uuInfo["userIcon"].ToString();
            req.nickname = uuInfo["userName"].ToString();
            //req.openId = uuInfo["userID"].ToString();
            req.openId = uuInfo["unionID"].ToString();
            if (uuInfo.ContainsKey("userGender"))
            {
                req.sex = uuInfo["userGender"].ToString().Equals("m") ? 1 : 2;
            }
            else
            {
                req.sex = 1;
            }

            SQDebug.Log("发送登陆指令。。。。。。。");
            string str = Json.Serializer <LoginSR.SendLogin>(req);
            if (!string.IsNullOrEmpty(str))                      //将登录信息保存在本地
            {
                PlayerPrefs.SetString("wechat_login_data", str); //获取保存到本地的登录信息
            }
            Global.Inst.GetController <NetLoadingController>().ShowLoading(false);
            if (mGetAuthDataCallBack != null)
            {
                mGetAuthDataCallBack(req);
            }
            //loginData.Add("nickName", Helper.Base64Encode(uuInfo["userName"].ToString()));
            return(req);
        }
#elif UNITY_IPHONE
        if (uuInfo.Contains("openid") || uuInfo.Contains("res"))
        {
            LoginSR.SendLogin req = new LoginSR.SendLogin();
            //req.openId = uuInfo["openid"].ToString();
            req.headUrl  = uuInfo["headimgurl"].ToString();
            req.nickname = uuInfo["nickname"].ToString();//("nickName", Helper.Base64Encode(uuInfo["nickname"].ToString()));
            req.openId   = uuInfo["unionid"].ToString();
            if (uuInfo.ContainsKey("sex"))
            {
                req.sex = uuInfo["sex"].ToString().Equals("m") ? 1 : 2;
            }
            else
            {
                req.sex = 1;
            }
            //MainPlayer.It.LoginToServer(loginData);
            Global.Inst.GetController <NetLoadingController>().ShowLoading(false);
            if (mGetAuthDataCallBack != null)
            {
                mGetAuthDataCallBack(req);
            }
            SQDebug.Log("发送登陆指令。。。。。。。");
            return(req);
        }
#endif
        return(null);
    }