如何从xamarin.forms调用特定于平台的页面

Nar*_*Dvl 10 c# xaml xamarin.ios xamarin.forms

我是xamarin app开发的新手,我有一些问题:

  1. 是否可以从Xamarin.Form页面调用特定于平台的页面?
  2. 我可以从视图模型进行页面导航吗?

让我解释清楚.

我有一个页面XFView.xaml,XFView.xaml.csXFViewModel.cs在PCL(Xamarin.Forms)项目中,XFView.xaml.cs或者 XFViewModel.cs我想调用项目中的MAActivity.cs页面Xamarin.Andriod

我尝试了很多,但得到了任何想法.

Ale*_*Lau 11

无论何时你想从本机(MAActivity.cs在你的情况下)调用一些东西,你必须使用DependencyService.

例如:

  1. 设置依赖服务

    // 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);
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在PCL中调用

    // PCL Project
    DependencyService.Get<INativePages>().StartMA();
    
    Run Code Online (Sandbox Code Playgroud)