public override void Login(object loginArgs, Callback callback)
        {
            if (_loginCompleted != null)
            {
                throw new InvalidOperationException("Login called while another login is in progress");
            }
            _loginCompleted = callback;
#if UNITY_IOS || UNITY_TVOS // todo
            WeChatIosLoginUtils.login(OnLoginCompleted);
#endif
#if UNITY_ANDROID && !UNITY_EDITOR
            WeChatAndroidLoginUtils.LoginAndroid(OnLoginCompleted);
#endif
        }
        public override void Start()
        {
            if (_running)
            {
                return;
            }
            _running = true;
#if !UNITY_EDITOR
            var settings = WeChatLoaderSettings.s_RuntimeInstance;
            if (settings == null)
            {
                Debug.LogError("WeChatPlayerIdentitySubsystem settings not setup");
                return;
            }
#endif
#if UNITY_ANDROID && !UNITY_EDITOR
            WeChatAndroidLoginUtils.InitAndroidWxApi();
#endif
#if UNITY_IOS
            WeChatIosLoginUtils.InitWxAPI();
#endif
        }