4

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

编辑:更准确地说:我想要 package.appxmanifest 中的字符串 -> 应用程序 UI -> 显示名称

4

4 回答 4

5
var package = Windows.ApplicationModel.Package.current;
var displayName = package.displayName;

在 8.1 中添加

于 2014-04-30T13:44:08.913 回答
4

Marco 的回答很有帮助,但事实证明,由于 XML 命名空间要求记录不充分,因此转换为 Javascript 有点困难。LINQ-to-XML 与 XDocument 一样在 WinJS 中不可用,但在 Marco 引用的 C# 资源中使用。

这是我获得应用程序名称的方式。请注意,它是异步的;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;
        });
    });
})();
于 2013-01-10T09:18:21.260 回答
2

根据this reference,无法获取显示名称。您可以从Package.Id获取包名称,但听起来您想要显示名称。

于 2012-11-29T14:29:32.510 回答
1

您可以查看包含在 Callisto Control Toolikit 中的AppManifestHelper类。GetManifestVisualElementsAsync方法返回一个具有DisplayName属性的VisualElement对象,这就是您要查找的内容。

请注意,此代码是用 C# 编写的,因此您需要将其转换为 Javascript。

于 2012-11-29T14:28:27.767 回答