如何在Xamarin Forms中退出应用程序?

Sen*_*izh 1 xamarin.android xamarin.forms xamarin.windows

我的项目是使用主 - 细节导航构建的.列表中共有三个页面,分别为Resources,Contacts和Login.在iOS中一切正常,但当用户按下Droid/WinPhone设备硬件后退按钮时,应用程序应退出.是否有适用于所有设备的Xamarin Forms的app-exit机制.(我的意思是本机代码不依赖于平台)提前感谢.

zho*_*nho 6

我这样做了

在xamarin表格中我添加了界面

public interface INativeHelper
{
    void CloseApp();
}
Run Code Online (Sandbox Code Playgroud)

在android项目中,我实现了INativeHelper

public class NativeHelper : INativeHelper
{
    public void CloseApp()
    {
        Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
    }                
}
Run Code Online (Sandbox Code Playgroud)

在IOS中实现INativeHelper

public class NativeHelper : INativeHelper
{
    public void CloseApp()
    {
        Process.GetCurrentProcess().CloseMainWindow();
        Process.GetCurrentProcess().Close();
    }       
}
Run Code Online (Sandbox Code Playgroud)

然后在Xamarin.Forms项目中重写方法OnBackButtonPressed

protected override bool OnBackButtonPressed()
    {
        INativeHelper nativeHelper = null;
        nativeHelper = DependencyService.Get<INativeHelper>();
        if (nativeHelper != null)
        {
            nativeHelper.CloseApp();
        }  

        return base.OnBackButtonPressed();
    }
Run Code Online (Sandbox Code Playgroud)

我没有为WinPhone实现,但它应该是类似的.