0

我在 TideSDK 中组合了一个桌面应用程序,并且在查找通过自定义启动 URL 传递给应用程序的参数时遇到了一些麻烦。

应用程序在调用适当的协议时启动(称为 aaa://),但我无法弄清楚如何获取 URL 字符串。我读了几个线程,建议我可以通过 Ti.API.application.getArguments() 调用获取字符串,但它返回一些奇怪的东西(见下文)。

// launch application with aaa://some_args_here
var args = Ti.API.application.getArguments();
// returns (StaticBoundList) [ /path/to/app, "-psn_0_721072", ]

我并不完全惊讶这似乎不起作用,因为 API 文档说 getArguments 方法返回命令行参数列表。

任何有关如何访问启动 URL 的见解将不胜感激!

4

3 回答 3

1

看看 window.location.search

https://developer.mozilla.org/en-US/docs/DOM/window.location

于 2013-01-15T16:53:36.943 回答
0

目前似乎没有“官方”的方式来做到这一点,所以我想出了我自己的解决方案,它似乎工作得很好(尽管目前它只为 OSX 实现)。

翻遍TideSDK源码,找到了创建原生应用委托的地方。我在应用委托中添加了一个 URL 启动处理程序,它将启动 URL 存储在一个新的应用委托成员中,并通过 Ti.UI 中的绑定将其连接到 API。

如果其他人对此功能感兴趣,或者对如何在 Windows 上完成此任务有见解,请与我们联系!

于 2013-01-24T00:06:32.587 回答
0

虽然我没有你的问题,但只想说以下功能对我来说很好用。

var args = Ti.API.application.getArguments();

这可能是 urlprotocl 注册表的问题吗?

我的 url 协议是这样设置的:MSDN

因此“命令”中的值是

"C:\YOUR_APP_FOLDER\YOURAPP.exe" "%1"

在win7和winxp上测试,都成功拿到了参数。

于 2013-03-05T03:38:28.340 回答