【问题标题】:Cast API 'ready' message never getting posted on localhostCast API“就绪”消息永远不会发布在本地主机上
【发布时间】:2013-12-23 15:44:36
【问题描述】:

我正在尝试在 Chrome 中开发 Google Cast 发件人应用程序。

documentation 声明

API 将变量 cast.isAvailable 设置为 true,并将 MessageEvent 发送到表单的主机页面的窗口对象:

{source: "CastApi", event: "Hello", api_version: [, ]}

当我使用我的开发环境和localhost 时,消息部分没有发生,尽管 api 肯定会被注入和运行(我可以看到使用 chrome 开发人员工具,并且还检查了window.cast.isAvailable in控制台返回true。)

发送消息的代码是文件的最后一行:

"undefined" != typeof chrome && "undefined" != typeof chrome.runtime || window.postMessage({source:cast.NAME, event:"Hello", api_version:cast.VERSION}, "*");

消息永远不会被发布,因为在我的开发机器上,chrome.runtime 是一个对象。

在我的服务器上,由于 chrome.runtime 未定义,消息被发布。

谁能告诉我chrome.runtime 是什么,为什么在我访问本地开发服务器而不是生产服务器时设置它?

如何在 localhost 上调试我的发件人应用程序?

【问题讨论】:

  • 您是否有任何其他 Chrome 扩展(安装在您的开发环境中)将内容脚本注入到 samne 页面中?
  • 我不这么认为...有没有简单的检查方法?我认为我在每个页面上都有一些扩展 - 但我希望这些扩展也能在我的服务器托管页面上注入。
  • 并非所有扩展都在每个页面上运行。您可以像这样找到: 1. 在开发者工具中打开控制台 2. 在底部有一个下拉列表,其中 <page context> 作为选定值 3. 单击此下拉列表并找出哪些扩展已将内容脚本注入此页面.查看并比较注入的扩展列表对于开发和生产环境是否相同
  • 谢谢 - 两种环境的扩展列表是相同的。
  • 您能否发布您的清单以及您访问网页的 2 个 URL(开发和产品)?

标签: google-chrome-extension google-cast


【解决方案1】:

我无法在 localhost127.0.0.1 上使用它。

但作为一种解决方法,我编辑了我的 hosts 文件并将我的机器名称映射到 localhost,当我通过使用该别名访问时它可以工作。

我的操作系统或我正在运行的 chrome 版本中似乎有一些东西填充了 chrome.runtimelocalhost...

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2015-02-23
    • 2020-04-21
    相关资源
    最近更新 更多