1

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

此解决方案在 android 中有效,但在 windows phone 8 中无效。Windows phone 抛出异常“无法获取未定义或空引用的属性 '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 phone中不起作用。如何在 Windows Phone 8 中以编程方式关闭应用程序?

4

1 回答 1

1

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");
            }
        }
}

谢谢,

于 2014-09-16T11:14:37.827 回答