2016-07-08 7 views
1

Ich habe dieses Xamarin.Forms Projekt, wo ich die Native Facebook SDK in meinem Droid und iOS-Projekten verwende.Xamarin Native Facebook gemischt mit Xamarin.Forms

Ich habe Probleme, zu Xamarin Formen nach dem Einloggen in nativen zu bekommen.

Grundsätzlich starte ich die Facebook-Sachen in meiner Haupt-Android-Datei.

Das Problem hier ist, dass die FacebookSDK funktioniert nicht, wenn meine Klasse von FormsApplicationActivity abgeleitet ist. Daher kann ich SetPage nicht verwenden. Gibt es eine Möglichkeit, von Native Android zu meinen Formularen zu navigieren?

Wenn ich von Activity abgeleitet bin, führt das SDK eine gute Leistung aus, aber ich erhalte Ausnahmen, wenn ich von FormsApplicationActivity ableite.

Ich habe alle Arten von Springen durch Reifen versucht (wie Erstellen einer separaten FormsApplicationActivity und dann das, um meine App.cs in Forms zu laden), aber nichts scheint zu helfen.

Bitte helfen Sie, ich habe fast keine Haare links :-)

Antwort

1

Ich weiß nicht, ob dies für Ihr spezielles Problem mit dem Facebook-SDK anwendbar ist, aber

Gibt es eine Möglichkeit, kann ich von Native Android zu meinen Formularen navigieren?

ist möglich!

Eigentlich, wenn Sie ein neues Xamarin.Forms-Projekt erstellen, das ist im Wesentlichen, was für Sie bereits getan wird. Die .Droid-Lösung (natives Android) startet einen Container für die .Forms-Lösung (LoadApplication (new App());).

Für Sie dies manuell tun, einfach eine neue Xamarin.Forms Lösung machen und die followingcode aus dem eine neue, regelmäßige Android Aktivität zum .Droid Projekt hinzufügen MainActivity.cs

MainLauncher = true 

Jetzt entfernen und sicherstellen, dass es MainLauncher = true ist und damit zum Ausgangspunkt Ihrer Android-Anwendung. Von dieser Aktivität aus können Sie zu jeder Aktivität navigieren (in Ihrem Fall die für das Facebook SDK benötigte).

Wenn Sie fertig sind, einfach feuern Ihre MainActivity mit Ihrer Xamarin.Forms Lösung, wie Sie normalerweise in Android tun würde, zum Beispiel:

var intent = new Intent(this, typeof(MainActivity)); 
StartActivityForResult(intent); 

, dass die Xamarin.Forms Lösung, da sie geladen werden würde würde normalerweise tun. Viel Glück!