【问题标题】:How does one query the "parameters" sent to a Chromecast Reciever app?如何查询发送到 Chromecast Receiver 应用程序的“参数”?
【发布时间】:2013-08-01 16:05:18
【问题描述】:

此页面上显示的文档演示了如何将任意参数从发送方应用发送到接收方应用:

https://developers.google.com/cast/chrome_sender

具体来说,这里:

request.parameters = "v=abcdefg";

但是,我看不到接收方应用程序在发送后应该如何访问这些参数?有人有一个 jscript 的例子让接收者看到这个字符串吗?

【问题讨论】:

    标签: google-cast


    【解决方案1】:

    这应该在接收器加载的 URL 的查询参数部分中传递。例如,如果您的应用网址是:

    http://example.com/foo.html
    

    然后你设置:

    request.parameters = "bar=baz";
    

    那么完整的 URL 应该是:

    http://example.com/foo.html?bar=baz
    

    从您的接收器 JavaScript 中,您可以使用 document.location.search 询问此值。

    【讨论】:

    • 我最初也是这么怀疑的,但事实并非如此(据我所知)。当我询问 document.location 的值时,它返回“example.com/foo.html”,没有“bar = baz”(使用您的示例)。我还可以在调试器中看到 baseURI 不包含任何 url 查询字符串。通常,chrome 调试器在 url 中包含任何查询字符串,所以如果它包含在 url 中,它会显示在那里。还有其他想法吗?
    • 有趣。也许它可以在加载的元数据回调中访问?今晚晚些时候我会试试这个,看看能不能帮忙解决。
    【解决方案2】:

    Chromecast 似乎从以下 URL 拉下内置应用程序设置:https://clients3.google.com/cast/chromecast/device/config

    如果您查看该文件,您会注意到许多 URL 如下所示:

    https://www.youtube.com/tv?${POST_DATA}

    请注意,${POST_DATA} 被指定为定义应用程序的 URL 的一部分。我只是猜测,但我认为除非您的应用程序在 Google 的白名单上进行了类似设置,否则您将无法通过 URL 接收该数据。

    可能值得使用通道将您需要的数据发送到应用程序,而不是尝试使用 request.parameters。

    【讨论】:

    • 希望这将很快被添加到 Chrome API 的开发人员文档中,因为我最初也想知道同样的事情,只是放弃了寻找它。你也许是对的。很不幸,因为很多人会复制/粘贴示例 YouTube 接收器,然后想知道如何访问这些参数。
    猜你喜欢
    • 2013-12-26
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多