如何以编程方式退出Windows Phone 8上的应用程序

时间:2014-09-16 11:13:00

标签: windows-phone-8 devextreme

我正在创建一个应用程序,当我按下取消按钮时,应用程序应该关闭。 因为我已经使用“navigator.app.exitApp()”语句给出了堆栈溢出的解决方案。

此解决方案适用于Android,但它无法在Windows Phone 8中运行。 Windows手机抛出“无法获取未定义或空引用的属性'exitApp'的异常”

我已为此编写了以下代码。

cancelLogin: function () {
        var result = DevExpress.ui.dialog.confirm('Do you want to exit ?', 'Confirm Exit');
        result.done(function (dialogResult) {
            try {
                if (dialogResult === true) {
                    navigator.app.exitApp();
                }
            }
            catch (e) {
                DevExpress.ui.dialog.alert(e.message, 'Exception');
            }
        });
   }

这在Android中运行良好,但在Windows手机中无法正常工作。 如何在Windows Phone 8中以编程方式关闭应用程序???

1 个答案:

答案 0 :(得分:2)

适用于Windows Phone 8的Cordova API不支持exitApp方法。要解决此问题,请执行以下Windows Phone 8平台代码:

window.external.Notify("DevExpress.ExitApp");

如果使用DevExtreme向导创建Windows Phone应用程序,将自动生成所需的代码。

    if(device.platform === "win8" && device.phone) {
        defaultLayout = "simple";
        startupView = "Navigation";
        $.each(Application1.config.navigation, function (i, item) { item.root = false; });
        document.addEventListener("deviceready", onDeviceReady, false);
}

function onDeviceReady() {
        document.addEventListener("backbutton", onBackKeyDown, false);
}

function onBackKeyDown() {
     if(Application1.app.canBack()) {
            Application1.app.back();
      }
      else {
            if(window.external) {
                window.external.Notify("DevExpress.ExitApp");
            }
        }
}

谢谢,