首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不使用WinjS库的情况下在通用Windows中添加回按钮事件?

如何在不使用WinjS库的情况下在通用Windows中添加回按钮事件?
EN

Stack Overflow用户
提问于 2016-09-09 06:52:10
回答 2查看 302关注 0票数 3

这是我的main.js

代码语言:javascript
复制
(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添加回键按事件?有人能推荐我吗?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-09 07:19:48

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

backpressed事件应该附加到Windows.Phone.UI.Input.HardwareButtons,而不是Windows.UI.WebUI.WebUIApplication

如果您引用HardwareButtons.BackPressedHardwareButtons,您将发现backpressed事件的用法如下:

代码语言:javascript
复制
var hardwareButtons = Windows.Phone.UI.Input.HardwareButtons;
function onBackPressed(eventArgs) { /* Your code */ }

// addEventListener syntax
hardwareButtons.addEventListener("backpressed", onBackPressed);
hardwareButtons.removeEventListener("backpressed", onBackPressed);

而且,由于您没有制作一个页面应用程序。此事件应附在每一个新页的JS代码上。

Update:如果您想以编程方式了解当前设备,可以使用以下If -语句:

代码语言:javascript
复制
if (deviceInfo.operatingSystem.toLowerCase() == "windowsphone")
{
     //do your windows phone logic
} else if (deviceInfo.operatingSystem.toLowerCase() == "windows")
{
     //do your windows logic
}
票数 1
EN

Stack Overflow用户

发布于 2016-09-09 09:56:45

我用了这个-

代码语言:javascript
复制
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);
    }

对我来说效果很好!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39405480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档