Windows 8 如何通过代码获取应用程序名称?

Windows 8 如何通过代码获取应用程序名称?,windows-8,microsoft-metro,Windows 8,Microsoft Metro,在基于Windows 8的应用程序中,如何通过javascript代码获取应用程序名称 编辑:更精确:我想要package.appxmanifest->Application UI->Display name中的字符串您可以查看包含在Callisto控件工具ikit中的类。GetManifestVisualElementsAsync方法返回一个VisualElement对象,其属性为DisplayName,这就是您要查找的内容 请注意,此代码是C#格式的,因此需要将其转换为Javascript。

在基于Windows 8的应用程序中,如何通过javascript代码获取应用程序名称


编辑:更精确:我想要package.appxmanifest->Application UI->Display name中的字符串

您可以查看包含在Callisto控件工具ikit中的类。GetManifestVisualElementsAsync方法返回一个VisualElement对象,其属性为DisplayName,这就是您要查找的内容


请注意,此代码是C#格式的,因此需要将其转换为Javascript。

根据,无法获取显示名称。您可以从中获取包名,但听起来似乎您需要显示名。

Marco的回答很有帮助,但事实证明转换为Javascript有点困难,因为XML名称空间要求的文档记录不充分。WinJS中没有使用LINQ到XML以及XDocument,但在Marco的参考C#resource中使用过

下面是我如何获得应用程序名称的。注意,它是异步的;AFAIK没有同步的方法来获取应用程序名

var appname; 

(function() {
    Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("AppxManifest.xml").then(function(file) {
        Windows.Storage.FileIO.readTextAsync(file).done(function (text) {
            var xdoc = new Windows.Data.Xml.Dom.XmlDocument();
            xdoc.loadXml(text);
            appname = xdoc.selectNodesNS("m:Package/m:Applications/m:Application/m:VisualElements",
                "xmlns:m=\"http://schemas.microsoft.com/appx/2010/manifest\"")[0]
                .attributes.getNamedItem("DisplayName").nodeValue;
        });
    });
})();

在8.1中添加了可能的副本:这不是我想要的。。。看编辑版这太棒了!我能够编辑此内容以获得应用程序功能。有点可笑的是,没有内置的WinJSAPI来获取此类信息。使创建需要特定功能的可再发行控件变得困难,并且没有好的方法告诉消费开发者主机应用配置不正确。Displayname也位于中,也可以在Displayname属性下找到。仍然是一个复杂但略短的选择器(使用VS Express 2013 for Windows无法使用)代码:xdoc.selectNodesNS(“m:Package/m:Properties/m:DisplayName”,“xmlns:m=\”\”)[0]。innerText;似乎无法通过资源使用本地化的显示名。
var package = Windows.ApplicationModel.Package.current;
var displayName = package.displayName;