我有一个使用Visual Studio 2012开发的城域应用程序,我这样设置了URI:
这是default.js中添加的代码
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
} else {
}
//Handles URI activation
WinJS.Application.addEventListener("activated", onActivatedHandler, false);
args.setPromise(WinJS.UI.processAll().then(init));
}
};
function onActivatedHandler(eventArgs) {
if (eventArgs.detail.kind == Windows.ApplicationModel.Activation.ActivationKind.protocol) {
// TODO: Handle URI activation.
// The received URI is eventArgs.detail.uri.rawUri
}
}
然后我打开webBrowser并输入地址文本字段:
e-camera:///
它运行良好(当应用程序运行后台时),但如果它是第一次打开,它会崩溃 我想我需要在onActivatedHandler()函数上设置一些东西来查看应用程序是否未初始化,任何帮助我都会感激
答案 0 :(得分:1)
只需查看Association Launching Sample,您似乎只处理可启动应用的三种可能情况之一,即您正在处理:
但不处理:
试试这个:
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
// ...
}
else if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.protocol) {
// Receives URI
var arg = args.detail.uri;
// Handles URI activation
WinJS.Application.addEventListener("activated", onActivatedHandler, false);
args.setPromise(WinJS.UI.processAll().then(init));
}
};