3

次のコードは、デバッグ モード (F5) で実行すると問題なく動作しますが、デプロイ (アプリ タイルとして) またはデバッガーなしで実行 (ctl+f5) すると、正しく動作しません。

予想される動作/動作時:タイルをクリックすると、HTML ページが表示されることなく、すぐに Steam URL リンクが起動します。

受信した動作/動作しない:タイルをクリックするとアプリが起動し、html ページをレンダリングするだけで、Steam URL は起動しません。

var mydefs = new Object();
mydefs = { url: 'steam://rungameid/200710' };

function launch(url) {
    var uri = new Windows.Foundation.Uri(url);

    Windows.System.Launcher.launchUriAsync(uri).then(
         function (success) {
             if (success) {
                 // File launched
                 window.close();
             } else {
                 // File launch failed
             }
         });
}

(function () {
    "use strict";

    WinJS.Binding.optimizeBindingReferences = true;

    var app = WinJS.Application;
    var activation = Windows.ApplicationModel.Activation;

    app.onactivated = function (args) {
        if (args.detail.kind === activation.ActivationKind.launch) {
            launch(mydefs.url);

            args.setPromise(WinJS.UI.processAll());
        }
    };

    app.oncheckpoint = function (args) {
        window.close();
    };

    app.start();
})();
4

1 に答える 1

2

タイミングの問題のようです。以下は私にとってタイルとして機能します

(function () {
   "use strict";
    var mydefs = new Object();
    mydefs = { url: 'steam://rungameid/200710' };

    WinJS.Namespace.define("Steam", {
      launch: function launch(url) {
        var uri = new Windows.Foundation.Uri(url);

        Windows.System.Launcher.launchUriAsync(uri).then(
             function (success) {
                 if (success) {
                     // File launched
                     window.close();
                 } else {
                     // File launch failed
                 }
             });
          }
  });


  WinJS.Binding.optimizeBindingReferences = true;

  var app = WinJS.Application;
  var activation = Windows.ApplicationModel.Activation;

  app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.launch) {                 
        setTimeout('Steam.launch("steam://rungameid/200710");', 2000);
        args.setPromise(WinJS.UI.processAll());
    }
  };

  app.start();
})();
于 2012-11-10T20:00:05.717 に答える