3

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

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

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

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

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

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

谢谢你。

4

1 回答 1

3

Chrome 不会启动 Activity,startActivityForResult因此接收应用程序没有简单的方法可以直接回调到网站或 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 并在查询字符串中添加额外数据的活动,这样您的浏览器将打开它所需的所有数据。

但它确实存在许多问题:

  • 您无法定位窗口,因此可能会打开一个新窗口,然后您的网络应用程序将打开两次
  • 您需要 Web 应用程序和原生应用程序来支持如何返回数据的合同。
于 2015-12-11T14:21:28.267 回答