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