【问题标题】:Google Chrome Custom URI-Scheme redirection to JSGoogle Chrome 自定义 URI-Scheme 重定向到 JS
【发布时间】:2015-04-20 09:53:09
【问题描述】:

我目前正在 google chrome 中开发一个自定义 uri-scheme(协议),并且需要一种方法来完全从 chrome 浏览器中自动化该协议的一些测试(和开发)。

例如。如果重定向/锚链接指向此示例 uri

testuri://thismessage/additionaldata

然后我想以某种方式重定向回 JS。 IE。打电话说

function protocolMessage(data) { ... }

我已经探索了“navigator.registerProtocolHandler”的使用,但这需要使用“web+testuri”,这不是一个选项(除非有人知道可以用来关闭它的设置)。

我已经研究过使用 chrome 自定义扩展来捕获 webNavigation 下的 uri,但它除了 http(s) 方案之外没有捕获任何东西。而且我也看不到任何可以让我直接注册自定义方案的功能。

进一步调查使我尝试调用系统应用程序(使用调用本机可执行文件的自定义 uri 方案),这部分可行,但现在我被困在如何将该消息重定向回当前页面/选项卡的 javascript .

我还查看了 NaCL(Pepper API),但似乎也不允许注册自定义方案。

我希望有一个比调用并返回浏览器更好的解决方案,但如果没有,任何人都可以阐明一个好的可靠的可重用解决方案吗?

有什么想法吗? 提前致谢

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension url-scheme google-nativeclient


    【解决方案1】:

    据我所知,不,很遗憾。

    所有 Chrome API 都使用“支持的方案”,您不能添加一个。

    web+custom: 也是一个不灵活的限制。

    如果您有一个系统应用程序,您可以通过在应用程序中提供 WebSocket 服务器或使用本机消息传递来与它通信。

    原生消息传递的问题在于 Chrome 必须启动与原生主机新实例的连接。因此,您需要能够处理被分别调用以进行协议处理和消息传递的本机应用程序。

    【讨论】:

    • 这就是我害怕的,谢谢你的帮助。所以看起来唯一的方法是创建一个网页需要连接的第 3 方应用程序。尽管您对使用 WebSockets 的建议是一个比创建扩展更好的想法。
    • 这可能是值得作为功能请求提出的。我对 bugtracker 做了一个简要概述,在扩展中有一个 very old request 与此有关。我说值得再看看,即使他们只为 Chrome 应用程序实现它(这很可能)。
    猜你喜欢
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多