如何在基于 Windows 8 的应用程序中通过 javascript 代码获取应用程序名称?
编辑:更准确地说:我想要 package.appxmanifest 中的字符串 -> 应用程序 UI -> 显示名称
如何在基于 Windows 8 的应用程序中通过 javascript 代码获取应用程序名称?
编辑:更准确地说:我想要 package.appxmanifest 中的字符串 -> 应用程序 UI -> 显示名称
var package = Windows.ApplicationModel.Package.current;
var displayName = package.displayName;
在 8.1 中添加
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;
});
});
})();
根据this reference,无法获取显示名称。您可以从Package.Id获取包名称,但听起来您想要显示名称。
您可以查看包含在 Callisto Control Toolikit 中的AppManifestHelper类。GetManifestVisualElementsAsync方法返回一个具有DisplayName属性的VisualElement对象,这就是您要查找的内容。
请注意,此代码是用 C# 编写的,因此您需要将其转换为 Javascript。