如何在基於Windows 8的應用程序中通過JavaScript代碼獲取應用程序名稱?如何通過代碼獲取應用程序名稱?
編輯:作爲更精確:我想在package.appxmanifest字符串 - >應用程序的用戶界面 - >顯示名稱
如何在基於Windows 8的應用程序中通過JavaScript代碼獲取應用程序名稱?如何通過代碼獲取應用程序名稱?
編輯:作爲更精確:我想在package.appxmanifest字符串 - >應用程序的用戶界面 - >顯示名稱
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;
});
});
})();
這真棒!我能夠編輯這個來獲得應用程序功能。有些可笑的是,沒有內置WinJS API來獲取這類信息。使得難以製作需要特定功能的可再發行控件,而沒有好的辦法告訴消費開發者主機應用程序配置不正確。 –
也可以在DisplayName屬性下找到Displayname。仍然是複雜的方式,但稍微短一點的選擇器(沒有讓你的工作使用VS Express 2013 for Windows)代碼:xdoc.selectNodesNS(「m:Package/m:Properties/m:DisplayName」,「xmlns:m = \ 「http://schemas.microsoft.com/appx/2010/manifest\"")[0].innerText; – Stefan
你可以看看到包括在木衛四控制Toolikit的AppManifestHelper類。 GetManifestVisualElementsAsync方法返回一個VisualElement對象與屬性顯示名稱,這就是您正在尋找。
請注意,此代碼使用C#,因此您需要將其轉換爲Javascript。
根據this reference,無法獲取顯示名稱。你可以從Package.Id得到包名,但它聽起來像你想要的顯示名稱。
var package = Windows.ApplicationModel.Package.current;
var displayName = package.displayName;
新增8.1
似乎無法通過資源使用本地化的顯示名稱。 – Mo0gles
的可能重複:http://stackoverflow.com/questions/3677338/how-to-get-the-application-path-using-javascript – RonaldBarzell
這不是正是我想要的...看到編輯版本 – Alesqui