Najnowsze FB logowanie API ma trzy parametryXamarin: Problem z najnowszym API FB
public unsafe virtual void LogInWithReadPermissions (string[] permissions, UIViewController fromViewController, [BlockProxy (typeof(Trampolines.NIDLoginManagerRequestTokenHandler))] LoginManagerRequestTokenHandler handler)
używam MVVMCross. Na fb logowania Próbowałem stworzył instancję widzenia jestem w, i przekazać go jako parametr dla LogInWithReadPermissions()
ViewModel:
private async void DoFacebookSignIn()
{
try
{
await facebookService. Login();
DoAutoLogin();
}
}
SERVICE:
private readonly string[] permitions = new string[] { "email", "public_profile" };
public async System.Threading.Tasks.Task LogIn()
{
LoginManager.LogInWithReadPermissionsAsync (permitions);
LoginManagerLoginResult result = await LogInWithReadPermissionsAsync();
if (result.IsCancelled)
{
ServiceFactory.UserMessageService.ShowToast("Facebook login is canceled");
}
}
private Task<LoginManagerLoginResult> LogInWithReadPermissionsAsync()
{
var tcs = new TaskCompletionSource<LoginManagerLoginResult>();
LoginManager.LogInWithReadPermissions (permitions,null, (LoginManagerLoginResult result, NSError error) =>
{
if(error.IsNotNull())
{
tcs.SetException (new IosErrorException(error));
} else
{
tcs.SetResult (result);
}
});
return tcs.Task;
}
Ale jego błąd, Czy muszę przekazywać informacje o widoku z Viewmodel, kiedy nazywam to func? Jak przekazać instancję widoku z modelu widoku? Czy ktoś może pomóc?
UPDATE
To braku w służbie:
func LogInWithReadPermissionsAsync()
line3: (LoginManager.LogInWithReadPermissions...)
bez podania żadnego błędu. To po prostu upaść. Facebook API version: "Xamarin.Facebook.iOS" version = "4.13.1"
UPDATE Usunięto nieużywany kod.
Powinieneś bardzo uważać na 'async void', jeśli nie są one używane do obsługi zdarzeń. Po drugie, powinieneś przesłać to, co dokładnie "zawiedzie" tutaj. Czy otrzymujesz wyjątek? Czy to po cichu zawiedzie? itd. Prosimy również o podanie dokładnego API FB, którego używasz, niezależnie od tego, czy jest to NuGet/Komponent/itd. –
Zaktualizowałem moje pytanie z niezbędnymi informacjami. – TheDeveloper
Załaduj 'mcve', aby pokazać, co się dzieje: http://stackoverflow.com/help/mcve Po drugie, czy sprawdziłeś logi urządzeń, aby uzyskać więcej danych wyjściowych? https://kb.xamarin.com/customer/portal/articles/1675684-where-can-i-find-my-version-information-and-logs#debug-logs-for-xamarin-apps –