【问题标题】:Retrieving parameters from a custom URL in TideSDK从 TideSDK 中的自定义 URL 检索参数
【发布时间】:2013-01-15 09:42:13
【问题描述】:

我在 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 的见解将不胜感激!

【问题讨论】:

    标签: macos url-scheme tidesdk


    【解决方案1】:

    【讨论】:

    • 这返回有关 SDK 启动应用程序的链接的信息(app:// 协议),而不是用于通过 Web 浏览器触发应用程序启动的协议(即苹果浏览器)。我手动编辑了应用程序的 Info.plist 以添加自定义 url 方案——是否有正确的方法来添加自定义方案?
    • 啊,明白了。对困惑感到抱歉。我认为添加自定义协议还没有“正确的方法”。你怎么做可能是唯一的方法。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      因此“命令”中的值是

      “C:\YOUR_APP_FOLDER\YOURAPP.exe”“%1”

      在win7和winxp上测试过, 都成功地得到了论点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 2013-06-27
        • 1970-01-01
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多