【问题标题】:How to get a result back to your web page from an Intent triggered from inside Chrome?如何从 Chrome 内部触发的 Intent 将结果返回到您的网页?
【发布时间】:2015-10-18 07:44:00
【问题描述】:

所以我很高兴发现 chrome mobile 可以调用 intent

但是,我可以返回结果吗?

我有一个输入供用户输入商品的条形码。

如果他们使用的是 chrome mobile,我想调用条码扫描器应用程序,并将扫描的条码接收回输入字段。

在谷歌上找不到任何相关信息。

即使是指向文档或示例的简单链接也会有很大帮助。

谢谢。

【问题讨论】:

    标签: android google-chrome android-intent progressive-web-apps


    【解决方案1】:

    Chrome 不会使用startActivityForResult 启动 Activity,因此接收应用程序没有简单的方法直接回调到网站或 Web 应用程序并返回您所期望的本机响应。

    虽然有一个解决方案,但它需要本机应用同意协议。

    ZXing QR Code Scanner 支持使用名为ret 的简单查询字符串参数将二维码扫描结果回调到站点中

    在 Android 上,您可以从网页调用 Barcode Scanner,并通过回调 URL 将结果返回到您的站点。例如,当扫描 01234 时,要让用户返回 http://foo.com/products/01234/description,只需链接到这样的 URL,其中 {CODE} 是返回代码值的占位符:

    http://zxing.appspot.com/scan?ret=http%3A%2F%2Ffoo.com%2Fproducts%2F%7BCODE%7D%2Fdescription&SCAN_FORMATS=UPC_A,EAN_13

    请注意,ret= 参数中的 URL 是 URL 转义的,并且 {CODE} 用作扫描值的占位符(在上面,它显示为 %7BCODE%7D)。 SCAN_FORMATS 和其他参数也可以在此处设置以控制扫描行为。例如 is 可用于提供以逗号分隔的格式名称列表。

    您可以在本机应用程序和 Web 应用程序中设置类似的方案,以便在本机应用程序中完成操作并使用名为 ret(或您想要的任何内容)的查询字符串参数启动时,它就会知道它需要使用 Intent 中设置的回调 URL 和查询字符串中添加的额外数据启动一个新 Activity,这样您的浏览器就会打开它所需的所有数据。

    它确实有很多问题:

    • 您无法定位窗口,因此可能会打开一个新窗口,然后您的网络应用会打开两次
    • 您需要 Web 应用和原生应用都支持数据返回方式的约定。

    【讨论】:

    • 这种方式不可用。更好的解决方案是使用 javascript 通过回调调用应用程序。等待 chrome 进化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多