Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不使用WinjS库的情况下在通用Windows应用程序中添加后退按钮事件?_Javascript_Uwp_Windows 10 Universal - Fatal编程技术网

Javascript 如何在不使用WinjS库的情况下在通用Windows应用程序中添加后退按钮事件?

Javascript 如何在不使用WinjS库的情况下在通用Windows应用程序中添加后退按钮事件?,javascript,uwp,windows-10-universal,Javascript,Uwp,Windows 10 Universal,这是我的main.js (function () { "use strict"; //No need of WinJS var activation = Windows.ApplicationModel.Activation; var roaming = Windows.Storage.ApplicationData.current.roamingSettings; // For App Start Up Windows.UI.WebUI.WebUIApplication.addEventL

这是我的main.js

(function () {
"use strict";

//No need of WinJS
var activation = Windows.ApplicationModel.Activation;
var roaming = Windows.Storage.ApplicationData.current.roamingSettings;

// For App Start Up
Windows.UI.WebUI.WebUIApplication.addEventListener("activated", function (args) {
    if (args.detail[0].kind === activation.ActivationKind.launch) {
        if (roaming.values["currentUri"]) {
            if (roaming.values["UserName"])
            {
                localStorage.setItem("UserName", roaming.values["UserName"]);
                window.location.href = roaming.values["currentUri"];
            }
        }
    }
});

// For App Suspension
Windows.UI.WebUI.WebUIApplication.addEventListener("suspending", function (args) {
    roaming.values["currentUri"] = window.location.href;
    roaming.values["UserName"] = localStorage.getItem("UserName");
});

// For Resuming App
Windows.UI.WebUI.WebUIApplication.addEventListener("resuming", function (args) {
    var roam = Windows.Storage.ApplicationData.current.roamingSettings;
    if (roam) {
        if (roam.values["currentUri"]) {
            localStorage.setItem("UserName", roam.values["UserName"]);
            window.location.href = roam.values["currentUri"];
        }
    }
}, false);
// not working backpressed event
Windows.UI.WebUI.WebUIApplication.addEventListener("backpressed", function (args) {
   // to do
}, false);})();
我需要在不使用winjs库的情况下为windows phone添加back按键事件? 有人能推荐我吗

我正在我的应用程序中使用ms appx web上下文。我不想使用winjs库

我需要在不使用winjs库的情况下为windows phone添加back按键事件

backpressed
事件应附加到
Windows.Phone.UI.Input.HardwareButtons
,而不是
Windows.UI.WebUI.WebUI应用程序

如果参考和,您会发现
backpressed
事件的用法如下:

var hardwareButtons = Windows.Phone.UI.Input.HardwareButtons;
function onBackPressed(eventArgs) { /* Your code */ }

// addEventListener syntax
hardwareButtons.addEventListener("backpressed", onBackPressed);
hardwareButtons.removeEventListener("backpressed", onBackPressed);
而且因为你不是在做一个单页的应用程序。此事件应附加在每个新页面的JS代码上

更新:如果您想通过编程了解当前设备,可以使用以下If语句:

if (deviceInfo.operatingSystem.toLowerCase() == "windowsphone")
{
     //do your windows phone logic
} else if (deviceInfo.operatingSystem.toLowerCase() == "windows")
{
     //do your windows logic
}
我用了这个-

var flag = Windows.Foundation.Metadata.ApiInformation.isTypePresent("Windows.Phone.UI.Input.HardwareButtons");

    if (flag) {
        var hardwareButtons = Windows.Phone.UI.Input.HardwareButtons;
        hardwareButtons.addEventListener("backpressed", onBackPressed);
    }

这对我很有效

Windows.UI.WebUI.WebUIApplication
行显示JavaScript运行时错误:运行桌面应用程序时无法获取未定义或空引用错误的属性“UI”。所以我需要解决这个问题。它显示
WIndows.Phone
未定义。应用程序是否有退出事件?我无法重现空错误,可能共享演示?应用程序没有退出事件。但每次你的应用程序退出时,它都会先挂起然后退出。所以你可以在挂起事件中执行逻辑。我不能…但我唯一能告诉你的是我无法访问Windows。Phone命名空间甚至intellitrace也没有显示它。我需要在解决方案中为它添加引用吗。