private void OnQQAuthBtnClick()
    {
        Debug.Log("OnQQAuthBtnClick");

        if (mShareSDK.IsAuthorized(PlatformType.WeChat))
            mShareSDK.CancelAuthorize(PlatformType.WeChat);

        mShareSDK.Authorize(PlatformType.QQ);
    }
예제 #2
0
 /// <summary>
 /// 微信授权
 /// </summary>
 public void AuthWeChat()
 {
     if (!ssdk.IsAuthorized(PlatformType.WeChat))
     {
         SQDebug.PrintToScreen("没有授权,登陆");
         ssdk.Authorize(PlatformType.WeChat);
     }
     else
     {
         SQDebug.PrintToScreen("授权了,登陆");
         ssdk.GetUserInfo(PlatformType.WeChat);
     }
 }
예제 #3
0
 /// <summary>
 /// 授权
 /// </summary>
 public void AuthPlat(PlatformType plat, CallBack <LoginSR.SendLogin> call)
 {
     mGetAuthDataCallBack = call;
     if (!ssdk.IsAuthorized(plat))
     {
         SQDebug.Log("没有授权,登陆");
         ssdk.Authorize(plat);
     }
     else
     {
         SQDebug.Log("授权了,登陆");
         ssdk.GetUserInfo(plat);
     }
 }
예제 #4
0
 public void OnSinaLoginBtnClick()
 {
     if (ssdk.IsAuthorized(PlatformType.SinaWeibo))
     {
         Utility.WriteFile(Application.persistentDataPath, "AuthInfo.dat", ssdk.GetAuthInfo(PlatformType.SinaWeibo).toJson());
         Utility.MakeToast("微博用户:" + ssdk.GetAuthInfo(PlatformType.SinaWeibo)["userName"] + "登陆成功!");
         ShareSDKManager.Instance.userPlat = PlatformType.SinaWeibo;
         UnityEngine.SceneManagement.SceneManager.LoadScene(2);
     }
     else
     {
         ssdk.Authorize(PlatformType.SinaWeibo);
     }
 }
예제 #5
0
 //是否授权
 public bool IsAuthorized(PlatformType type)
 {
     return(ssdk.IsAuthorized(type));
 }
예제 #6
0
    public override void OnEnable()
    {
        base.OnEnable();

        ShareSDK.authHandler         = OnAuthResultHandler;
        ShareSDK.shareHandler        = OnShareResultHandler;
        ShareSDK.showUserHandler     = OnGetUserInfoResultHandler;
        ShareSDK.getFriendsHandler   = OnGetFriendsResultHandler;
        ShareSDK.followFriendHandler = OnFollowFriendResultHandler;

        WeChatComponents.OnAdd().Subscribe(entity =>
        {
            var wechatComponent = entity.GetComponent <WeChatComponent>();
            var animator        = entity.GetComponent <Animator>();

            IsAuthorized.DistinctUntilChanged().Subscribe(isOn =>
            {
                animator.SetBool(IsOn, isOn);
                if (isOn)
                {
                    ShareSDK.GetUserInfo(PlatformType.WeChat);
                    wechatComponent.NickName.text = authInfo[NickName].ToString();
                    StartCoroutine(LoadImage(authInfo[HeadImgURL].ToString(), wechatComponent.UserIcon));
                }
                else
                {
                    IsGetUserInfo.Value             = false;
                    wechatComponent.NickName.text   = Empty;
                    wechatComponent.UserIcon.sprite = null;
                }
            }).AddTo(this.Disposer).AddTo(wechatComponent.Disposer);

            IsGetUserInfo.DistinctUntilChanged().Where(b => b).Subscribe(_ =>
            {
                wechatComponent.NickName.text = userInfo[NickName].ToString();
                StartCoroutine(LoadImage(userInfo[HeadImgURL].ToString(), wechatComponent.UserIcon));
            }).AddTo(this.Disposer).AddTo(wechatComponent.Disposer);

            wechatComponent.SignInButton.OnPointerClickAsObservable().Subscribe(_ =>
            {
                ShareSDK.Authorize(PlatformType.WeChat);
            }).AddTo(this.Disposer).AddTo(wechatComponent.Disposer);

            wechatComponent.SignOutButton.OnPointerClickAsObservable().Subscribe(_ =>
            {
                ShareSDK.CancelAuthorize(PlatformType.WeChat);
                IsAuthorized.Value = false;
            }).AddTo(this.Disposer).AddTo(wechatComponent.Disposer);
        }).AddTo(this.Disposer);

        WeChatWriter.OnAdd().Subscribe(writer =>
        {
            if (ShareSDK.IsAuthorized(PlatformType.WeChat) && writer.HasKey(AuthInfo))
            {
                authInfo           = writer.Get <string>(AuthInfo).hashtableFromJson();
                IsAuthorized.Value = true;
            }
            else
            {
                if (ShareSDK.IsAuthorized(PlatformType.WeChat))
                {
                    ShareSDK.CancelAuthorize(PlatformType.WeChat);
                }
                IsAuthorized.DistinctUntilChanged().TakeWhile(_ => !writer.HasKey(AuthInfo)).Where(b => b).Subscribe(_ =>
                {
                    writer.Set(AuthInfo, authInfo.toJson());
                }).AddTo(this.Disposer);
            }

            IsGetUserInfo.DistinctUntilChanged().TakeWhile(_ => !writer.HasKey(UserInfo)).Where(b => b).Subscribe(_ =>
            {
                writer.Set(UserInfo, userInfo.toJson());
            }).AddTo(this.Disposer);
        }).AddTo(this.Disposer);
    }
예제 #7
0
    private void Start()
    {
        ssdk = GameObject.FindObjectOfType <ShareSDK>();
        if (ssdk == null)
        {
            ssdk = UnityHelper.GetOrCreateComponent <ShareSDK>(this.gameObject);
        }

        ssdk.authHandler     = OnAuthResultHandler;
        ssdk.showUserHandler = OnGetUserInfoResultHandler;


        #region



        if (ssdk.IsClientValid(PlatformType.WeChat) == false)
        {
            wechatLoginBtn.gameObject.SetActive(false);
        }
        if (ssdk.IsClientValid(PlatformType.QQ) == false)
        {
            qqLoginBtn.gameObject.SetActive(false);
        }

        #endregion



        //Listeners
        wechatLoginBtn.onClick.AddListener(() =>
        {
            if (LoginUIController.Instance.CheckNetWork() == false)
            {
                LoginUIController.Instance.ShowPopup("网络错误", "请检查是否连接到网络");
                return;
            }

            if (LoginUIController.Instance.VerifyAgreeToggle() == false)
            {
                LoginUIController.Instance.ShowPopup("", GlobalParameter.AgrrToggle);
                return;
            }
            if (ssdk.IsClientValid(PlatformType.WeChat) == false)
            {
                //   LoginUIController.Instance.ShowPopup("", GlobalParameter.NeedWechatClient);
                LoginUIController.Instance.ShowPopup("登录失败", "请使用其他方式登录");
                return;
            }
            if (ssdk.IsAuthorized(PlatformType.WeChat))
            {
                ssdk.CancelAuthorize(PlatformType.WeChat);
            }
            ssdk.authHandler     = OnAuthResultHandler;
            ssdk.showUserHandler = OnGetUserInfoResultHandler;
            //是否设置客户端授权,false:使用
            ssdk.DisableSSO(false);
            ssdk.GetUserInfo(PlatformType.WeChat);
        });

        qqLoginBtn.onClick.AddListener(() =>
        {
            if (LoginUIController.Instance.CheckNetWork() == false)
            {
                LoginUIController.Instance.ShowPopup("网络错误", "请检查是否连接到网络");
                return;
            }

            if (LoginUIController.Instance.VerifyAgreeToggle() == false)
            {
                LoginUIController.Instance.ShowPopup("", GlobalParameter.AgrrToggle);
                return;
            }
            if (ssdk.IsClientValid(PlatformType.QQ) == false)
            {
                // LoginUIController.Instance.ShowPopup("", GlobalParameter.NeedQQClient);
                LoginUIController.Instance.ShowPopup("登录失败", "请使用其他方式登录");
                return;
            }
            if (ssdk.IsAuthorized(PlatformType.QQ))
            {
                ssdk.CancelAuthorize(PlatformType.QQ);
            }
            ssdk.authHandler     = OnAuthResultHandler;
            ssdk.showUserHandler = OnGetUserInfoResultHandler;
            ssdk.DisableSSO(false);
            ssdk.GetUserInfo(PlatformType.QQ);
        });

        weiboLoginBtn.onClick.AddListener(() =>
        {
            if (LoginUIController.Instance.CheckNetWork() == false)
            {
                LoginUIController.Instance.ShowPopup("网络错误", "请检查是否连接到网络");
                return;
            }


            if (LoginUIController.Instance.VerifyAgreeToggle() == false)
            {
                LoginUIController.Instance.ShowPopup("", GlobalParameter.AgrrToggle);
                return;
            }
            //if (ssdk.IsClientValid(PlatformType.SinaWeibo) == false)
            //{
            //   // LoginUIController.Instance.ShowPopup("", GlobalParameter.NeedSinaWeiboClient);

            //    LoginUIController.Instance.ShowPopup("登录失败","请使用其他方式登录");
            //    return;
            //}
            if (ssdk.IsAuthorized(PlatformType.SinaWeibo))
            {
                ssdk.CancelAuthorize(PlatformType.SinaWeibo);
            }
            ssdk.authHandler     = OnAuthResultHandler;
            ssdk.showUserHandler = OnGetUserInfoResultHandler;
            //ssdk.DisableSSO(false);
            ssdk.GetUserInfo(PlatformType.SinaWeibo);
        });
    }