2015-02-24 9 views
6

io sono nuovo del Xamarin sviluppo di app, ho alcune domande:come chiamare piattaforma pagina specifica da xamarin.forms

  1. è possibile chiamare la pagina specifica piattaforma dalla pagina Xamarin.Form?
  2. Posso navigare pagina da modello di vista?

Lasciami spiegare chiaramente.

Ho una pagina XFView.xaml, XFView.xaml.cs e XFViewModel.cs in PCL (Xamarin.Forms) progetto dal XFView.xaml.cs o XFViewModel.cs voglio chiamare MAActivity.cs pagina che è presente in Xamarin.Andriod progetto

Ho provato un sacco, ma ho sempre qualche idea .

risposta

7

Ogni volta che si desidera chiamare qualcosa da nativo (MAActivity.cs nel proprio caso), è necessario utilizzare DependencyService.

Ad esempio:

  1. servizio Setup dipendenza

    // PCL Project 
    public interface INativePages 
    { 
        void StartMA(); 
    } 
    
    // MonoDroid Project 
    [assembly: Dependency(typeof(NativePages))] 
    
    public class NativePages : INativePages 
    { 
        public void StartMA() 
        { 
         var intent = new Intent(Forms.Context, typeof(MAActivity)); 
         Forms.Context.StartActivity(intent); 
        } 
    } 
    
  2. Invoke in PCL

    // PCL Project 
    DependencyService.Get<INativePages>().StartMA(); 
    
+0

Questo funziona bene per Android - ma sto lottando per trovare l'equivalente WP8. Sembra che ci siano alcune soluzioni che prevedono rendering personalizzati, ma preferirei evitare che ... –

+1

Capito! '(Application.Current.RootVisual as PhoneApplicationFrame) .Navigate (new Uri ("/PageName.xaml ", UriKind.Relative));' –

Problemi correlati