3
下面的代码在调试模式(F5)下运行时完美地工作..但是当部署(作为应用程序磁贴)或运行时没有调试器(ctl + f5)时,它确实工作不是正常工作。WinJS System.Launcher只能在调试模式下工作
行为预期/工作时间:点击瓦片立即启动蒸汽URL链接,而不会显示html页面。
行为收到/不工作:点击瓦片启动应用程序,只渲染HTML页面,并从不启动蒸汽网址。
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();
})();
这样做,谢谢。 - 剩下的唯一的事情是,行为与从调试运行时的行为仍然不一样:即使启动了Steam网址,应用仍然运行/打开。我相信我会弄清楚这一点。这是一个很好的答案,谢谢。 –
这工作,但并不理想。有谁知道这是必需的技术原因? – kamranicus
我认为它可能使用'setImmediate'来修复,但似乎并非如此。它可能一直在为我工作,因为我的应用程序加载很快,但我测试了更多,发现它仍然无法正常工作。现在唯一可行的就是超时。 – kamranicus