Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to call platform specific page from xamarin.forms

I am new to the xamarin app development, I have some questions :

  1. Is it possible to call the platform specific page from the Xamarin.Form page?
  2. Can I do Page Navigation from view model?

Let me explain clearly.

I have a Page XFView.xaml , XFView.xaml.cs and XFViewModel.cs in PCL (Xamarin.Forms) project from XFView.xaml.cs or XFViewModel.cs i want to call MAActivity.cs page which is present in Xamarin.Andriod project

I tried a lot but got getting any idea.

like image 423
Narayana Dvl Avatar asked Feb 24 '15 04:02

Narayana Dvl


People also ask

How do I navigate to another page in Xamarin?

Go to Solution Explorer-->Your Project-->Portable-->Right click-->Add-->New Item (Ctrl+Shift+A). Now, select Forms XAML page and give the name (MainPage. xaml). In this step, add another one page, whose name is called SecondPage.

Is Xamarin forms cross-platform?

Xamarin is one of the most popular cross-platform app development tools for iOS, Android, tvOS, watchOS, macOS, and Microsoft (UWP apps) using C # and . NET. In 2019–2020, it was ranked among the five most popular cross-platform mobile frameworks used by software developers worldwide.


1 Answers

Whenever you would like to call something from native (MAActivity.cs in your case), you have to use DependencyService.

For example:

  1. Setup dependency service

    // 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();
    
like image 118
Alex Lau Avatar answered Nov 15 '22 19:11

Alex Lau