如何在Xamarin Android应用程序中从facebook注销?

时间:2017-09-28 09:21:55

标签: android facebook xamarin xamarin.android

所以我需要在我的android应用程序中实现facebook logout功能。问题是大多数答案都建议使用LoginManager.Instance.LogOut();但是这个方法会在你登录的所有设备中从facebook注销。在我的情况下,我只需要从我的应用程序注销然后当注销成功时需要导航回登录界面。所以我考虑使用与登录相同的方法。

这是我的facebook登录视图:

class FacebookLoginView : MvxActivity, IFacebookCallback
{
    private LoginButton loginButton;
    private ICallbackManager callbackManager;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        RequestWindowFeature(WindowFeatures.NoTitle);
        SetContentView(Resource.Layout.FacebookLoginView);

        var loaderService = Mvx.Resolve<IMvxViewModelLoader>();
        ViewModel = (FacebookLoginViewModel)loaderService.LoadViewModel(new MvxViewModelRequest(typeof(FacebookLoginViewModel)), null);

        loginButton = FindViewById<LoginButton>(Resource.Id.loginButton1);
        loginButton.SetReadPermissions(new string[] { "user_friends", "email" });
        callbackManager = CallbackManagerFactory.Create();
        loginButton.RegisterCallback(callbackManager, this);
    }

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);
        callbackManager.OnActivityResult(requestCode, (int)resultCode, data);
    }

    public void OnCancel()
    {
        //Does nothing, just closes facebook login screen
    }

    public void OnError(FacebookException error)
    {
        //For now does nothing
    }

    public async void OnSuccess(Java.Lang.Object result)
    {
        var loginResult = result as LoginResult;
        await ((FacebookLoginViewModel)ViewModel).GetAccountInfoAndSaveAsync(loginResult.AccessToken.Token);
    }
}

所以我希望登出方式与登录方式相同...当我点击退出按钮弹出窗口时,会显示询问我是否确定,然后按下&#34;确定&#34;按钮我想跳转到OnSuccess之类的回调,然后导航到登录屏幕。当我尝试实现这一点时,没有任何反应......它只是注销并保持在同一视图中...我尝试调试并发现它不会停留在OnCancelOnErrorOnSuccess方法,有人可以帮我做这个注销吗?

0 个答案:

没有答案