如何在基于Windows 8的应用程序中通过javascript代码获取应用程序名称?
编辑:更精确:我想要package.appxmanifest中的字符串 - >应用程序用户界面 - >显示名称
答案 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。