HarmonyOS 鸿蒙Next点击登录账号后取消会反复拉起登录界面

HarmonyOS 鸿蒙Next点击登录账号后取消会反复拉起登录界面 0030086000619160679.20220915173919.60451572984339245627033512439199.jpg

借用一下别人的图, 即调起这个界面后,点击左上角的返回,返回到游戏界面后会再次调起这个界面。需要点击好几遍返回才行,这个次数还不固定。

接入的插件是 Unity集成华为游戏服务SDK方式(二):集成Unity-Plugins插件-华为开发者问答 | 华为开发者联盟

外部封装调用的下面这个方法

public void StartSignIn(Action<AuthAccount> onSuccess, Action<HMSException> onFailure)
{
    AndroidJavaObject androidJavaObject = Call<AndroidJavaObject>("getSignInIntent", Array.Empty<object>());
    GenericBridgeCallbackWrapper genericBridgeCallbackWrapper = new GenericBridgeCallbackWrapper().AddOnFailureListener(onFailure).AddOnSuccessListener(delegate (AndroidIntent resultIntent)
    {
        AccountAuthManager.ParseAuthResultFromIntent(resultIntent).AddOnFailureListener(onFailure).AddOnSuccessListener(delegate (AuthAccount authHuaweiId)
        {
            CallOnMainThread(delegate
            {
                onSuccess(authHuaweiId);
            });
        });
    });
    genericBridgeCallbackWrapper.AddOnFailureListener(onFailure);
    sJavaClass.CallStatic("receiveShow", androidJavaObject, genericBridgeCallbackWrapper);
}

这个方法外部就调用了一遍, 错误回调返回了好几遍!!!


更多关于HarmonyOS 鸿蒙Next点击登录账号后取消会反复拉起登录界面的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
外部封装的方法,点击账号登录调用


public static void SignIn(Action<bool, String> _callback)
{
    //if (authService == null)
    //{
        authParams = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM).SetAuthorizationCode().CreateParams();
        authService = AccountAuthManager.GetService(authParams);
    //}

    authService.StartSignIn((authId) =>
    {
        accountInfo.AuthorizationCode = authId.AuthorizationCode;
        accountInfo.UnionId = authId.UnionId;
        accountInfo.OpenId = authId.OpenId;
        json = JsonUtility.ToJson(accountInfo);
        _callback?.Invoke(true, json);
        HuaweiId = authId;
    }, (error) =>
    {
        _callback?.Invoke(false, "");
        HuaweiId = null;
        Debug.LogError($"Sign in failed. CauseMessage: {error.WrappedCauseMessage}, ExceptionMessage: {error.WrappedExceptionMessage}");
        //Invoke the GMS Login when the HMS Core APK not installed Example
        if (error.ErrorCode == AvailableCode.USER_ALREADY_KNOWS_SERVICE_UNAVAILABLE ||
            error.ErrorCode == AvailableCode.CURRENT_SHOWING_SERVICE_UNAVAILABLE ||
            error.ErrorCode == CommonCode.ErrorCode.CLIENT_API_INVALID)
        {
            Debug.LogError($"Sign in failed. HMS Core APK not installed");
        }
    });
}

更多关于HarmonyOS 鸿蒙Next点击登录账号后取消会反复拉起登录界面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next点击登录账号后取消会反复拉起登录界面”的问题,可能的原因及解决方案如下:

该现象可能是由于应用内部的登录逻辑处理不当导致。在鸿蒙系统中,当用户点击登录按钮后取消操作,应用应当正确处理取消事件,避免重复触发登录界面。可能的问题点包括但不限于:

  1. 事件监听未正确处理:检查登录按钮的事件监听逻辑,确保取消操作能够正确中断登录流程,并阻止后续登录界面的拉起。

  2. 状态管理混乱:应用内部的状态管理可能存在问题,导致即使取消了登录操作,应用仍然认为用户处于待登录状态,从而反复拉起登录界面。检查并修正状态管理逻辑。

  3. 页面跳转逻辑错误:登录界面的跳转逻辑可能存在错误,导致取消操作后页面跳转回登录界面。检查页面跳转代码,确保逻辑正确。

解决此问题需要对应用代码进行具体分析和调试。开发者应仔细检查登录流程相关的代码,确保事件监听、状态管理和页面跳转逻辑的正确性。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部