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

时间:2012-11-29 13:57:43

标签: windows-8 microsoft-metro

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

编辑:更精确:我想要package.appxmanifest中的字符串 - >应用程序用户界面 - >显示名称

4 个答案:

答案 0 :(得分:5)

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

在8.1中添加

答案 1 :(得分:4)

Marco的答案很有帮助,但由于XML命名空间要求不佳,转换为Javascript证明有点困难。与XDocument一样的LINQ-to-XML在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;
        });
    });
})();

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

请注意,此代码位于C#中,因此您需要将其转换为Javascript。