4

Windows 8ベースのアプリでJavaScriptコードによってアプリケーション名を取得するにはどうすればよいですか?

編集:より正確に:package.appxmanifest->アプリケーションUI->表示名に文字列が必要です

4

4 に答える 4

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

8.1で追加

于 2014-04-30T13:44:08.913 に答える
4

マルコの答えは役に立ちましたが、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;
        });
    });
})();
于 2013-01-10T09:18:21.260 に答える
2

このリファレンスによると、表示名を取得する方法はありません。Package.Idからパッケージ名を取得できますが、表示名が必要なようです。

于 2012-11-29T14:29:32.510 に答える
1

CallistoControlToolikitに含まれているAppManifestHelperクラスを確認できます。GetManifestVisualElementsAsyncメソッドは、プロパティDisplayNameを持つVisualElementオブジェクトを返します。これは、探しているものです。

このコードはC#であるため、Javascriptに変換する必要があることに注意してください。

于 2012-11-29T14:28:27.767 に答える