【发布时间】:2013-12-12 00:48:07
【问题描述】:
我正在 Visual Studio 2012 和 Win8.1 中开发一个 JavaScript Metro 应用程序
我在任何网络浏览器上使用 URI 调用我的应用程序,例如:
myapp:///
但我想发送几个这样的参数
myapp://parameters/?p1="hello"&p2="Jesus"
并出于多种目的恢复我的应用程序中的值,这可能吗?该怎么做??
提前致谢
编辑:
这是我目前得到但仍然无法工作的代码:
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
...
}
//Handles URI activation (by Protocol)
else if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.protocol) {
// Displays on screen the URI parameters
console.log("the parameters: " + args.detail.uri.queryParsed);
args.setPromise(WinJS.UI.processAll());
}
};
上面写着(从西班牙语翻译):
此表达式的值可能不正确。无法评估 因为“需要一个标识符”单击此按钮以尝试评估 现在
这是完整的错误
"TypeError: GetAt: onactivated 参数无效\n (ms-appx://7f50cf46-2f92-4088-b44e-2da6ccd24a08/js/default.js:68:13)\n 在包装器 (ms-appx://microsoft.winjs.1.0/js/base.js:549:61)\n 在 dispatchOne (ms-appx://microsoft.winjs.1.0/js/base.js:6987:25)\n at dispatchEvent (ms-appx://microsoft.winjs.1.0/js/base.js:6986:21)\n
在 drainQueue (ms-appx://microsoft.winjs.1.0/js/base.js:7038:9)\n 在 queueEvent (ms-appx://microsoft.winjs.1.0/js/base.js:7057:13)\n at 匿名函数 (ms-appx://microsoft.winjs.1.0/js/base.js:7110:13)\n 在 CompletePromise_then (ms-appx://microsoft.winjs.1.0/js/base.js:1790:21)\n 在 激活处理程序 (ms-appx://microsoft.winjs.1.0/js/base.js:7109:9)"
EDIT2:这是我迄今为止所做的最接近我的答案的 URI
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
...
// Handles URI activation
WinJS.Application.addEventListener("activated", onActivatedHandler, false);
args.setPromise(WinJS.UI.processAll());
}
};
function onActivatedHandler(eventArgs) {
if (eventArgs.detail.kind == Windows.ApplicationModel.Activation.ActivationKind.protocol) {
var uri = String(eventArgs.detail.uri.rawUri);
var par1 = uri.substring(uri.indexOf("?p1=") + 7, uri.indexOf("&p2=") -3);
var par2 = uri.substring(uri.indexOf("&p2=") + 7, uri.length - 3);
Windows.UI.Popups.MessageDialog("parameter1: " + par1 + ", and the parameter2: " + par2).showAsync();
}
}
这显示了一个弹出窗口,上面写着:
title
parameter1: hello, and the parameter2: Jesus
我希望得到一个参数数组或字典...
【问题讨论】:
标签: javascript visual-studio-2012 microsoft-metro windows-8.1