Windows 8ベースのアプリでJavaScriptコードによってアプリケーション名を取得するにはどうすればよいですか?
編集:より正確に:package.appxmanifest->アプリケーションUI->表示名に文字列が必要です
Windows 8ベースのアプリでJavaScriptコードによってアプリケーション名を取得するにはどうすればよいですか?
編集:より正確に:package.appxmanifest->アプリケーションUI->表示名に文字列が必要です
var package = Windows.ApplicationModel.Package.current;
var displayName = package.displayName;
8.1で追加
マルコの答えは役に立ちましたが、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;
});
});
})();
このリファレンスによると、表示名を取得する方法はありません。Package.Idからパッケージ名を取得できますが、表示名が必要なようです。
CallistoControlToolikitに含まれているAppManifestHelperクラスを確認できます。GetManifestVisualElementsAsyncメソッドは、プロパティDisplayNameを持つVisualElementオブジェクトを返します。これは、探しているものです。
このコードはC#であるため、Javascriptに変換する必要があることに注意してください。