Почему при входе в Facebook приглашение не отменяется при нажатии на кнопку отмены? - PullRequest
0 голосов
/ 04 апреля 2020

Я использую Unity 2019.3.0f3 и Facebook SDK Unity версии 7.19.1

Я успешно интегрировал его на iOS и Android. Я установил FB init в Start (), но у меня также есть механизм автоматического входа в Start (). При бесплатной sh установке приложения в iOS, когда я нажимаю кнопку Facebook, появляется сообщение о том, что Facebook хочет войти в систему и может выбрать «Отмена» или «Продолжить». Оба варианта хорошо работают в первый раз.

После входа в систему и использования приложений, скажем, приложение перезапускается, где работает механизм автоматического входа. Если приложение перезапускается и если строка в PlayerPrefs (заданная в первый раз, это «Facebook») совпадает, то оно должно войти в систему, но FBSDK на iOS покажет то же самое приглашение, что и в первый раз, и даже если нажать кнопку «Отмена», оно автоматически входит в систему. Он не должен входить в систему при нажатии кнопки Отмена. Почему это происходит и как я могу это исправить?

мой старт и логин на Facebook:

public void Start()
{
    if (!FB.IsInitialized)
    {
        Debug.Log("FB not initialized. Initializing now.");
        // Initialize the Facebook SDK
        FB.Init(InitCallback, OnHideUnity);
    }
    else
    {
        // Already initialized, signal an app activation App Event
        Debug.Log("activate app on start if fb initialized.");
        FB.ActivateApp();
    }

    if (PlayerPrefs.GetString("email") != "" && PlayerPrefs.GetString("password") != "")
    {
        string login_useremail = PlayerPrefs.GetString("email");
        string login_password = PlayerPrefs.GetString("password");

        LoadingPage.SetActive(true);
        loggingIn = true;

        if (PlayerPrefs.GetString("SocialPlatform", "Facebook") == "Facebook")
        {
            //StartCoroutine(LoginUserViaFacebook(login_useremail, login_password));
            StartCoroutine(LogIntoFacebook());
        }
    }
}

IEnumerator LogIntoFacebook()
{
    while(fbactivated == false)
    {
        yield return new WaitForSecondsRealtime(0.2f);
        Debug.Log("Facebook cannot login becae its not activated yet.");
    }

    if(fbactivated == true)
    {
        Debug.Log("Facebook is activated");
        FacebookLogin();
    }
}

public void FacebookLogin()
{
    var perms = new List<string>() { "public_profile", "email" };
    FB.LogInWithReadPermissions(perms, AuthCallback);
}

Я предполагаю, что это контролирует Отмена или Продолжить? Но игнорирует Отмена при автоматическом входе.

FB.LogInWithReadPermissions (perms, AuthCallback);

...