Visual studio 2012 如何为VS2012 Windows 8.1开发的Metro应用程序正确设置URI
我有一个使用Visual Studio 2012开发的metro应用程序,我通过以下方式设置URI: 这是在default.js中添加的代码Visual studio 2012 如何为VS2012 Windows 8.1开发的Metro应用程序正确设置URI,visual-studio-2012,microsoft-metro,uri,windows-8.1,Visual Studio 2012,Microsoft Metro,Uri,Windows 8.1,我有一个使用Visual Studio 2012开发的metro应用程序,我通过以下方式设置URI: 这是在default.js中添加的代码 app.onactivated = function (args) { if (args.detail.kind === activation.ActivationKind.launch) { if (args.detail.previousExecutionState !== activation.ApplicationExec
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:///
它工作良好(当应用程序运行后台时),但如果它是第一次打开,它会崩溃
我想我需要在activatedHandler()函数上设置一些内容,以查看应用程序是否未初始化,如果有任何帮助,我将不胜感激
- Windows.ApplicationModel.Activation.ActivationKind.launch
- Windows.ApplicationModel.Activation.ActivationKind.protocol是的,在您的案例中应该是args.detail.uri。我会修好的。该示例需要VS2013:(但如果查看代码,逻辑应该类似。
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)); } };