如何调用 Android 应用程序并从 Chrome 中的网页返回结果?

How do you call an Android app and get a result back from a web page in Chrome?

正在查看https://developer.chrome.com/multidevice/android/intents What is then the best way to get result back to Chrome browser from app? There is browser_fallback_url but is there any kind of result_callback handler? Question is similar to

编辑: 已开始发布此 https://code.google.com/p/chromium/issues/detail?id=572067

Chrome 不会以 startActivityForResult 启动 Activity,因此没有简单的方法让接收应用程序直接回调到网站或 Web 应用程序,响应如下你会期待原生。

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

ZXing QR Code Scanner 支持使用名为 ret

的简单查询字符串参数将 QR 码扫描结果回调到站点

On Android, you can invoke Barcode Scanner from a web page and have the result returned to your site via a callback URL. For example, when 01234 is scanned, to have the user return to http://foo.com/products/01234/description, simply link to a URL like this, where {CODE} is a placeholder for the value of the returned code:

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

Note that the URL in the ret= parameter is URL-escaped, and that {CODE} is used as a placeholder for the scanned value (above, it appears as %7BCODE%7D). SCAN_FORMATS, and other parameters, can be set here as well to control the scan behavior. For example is can be used to supply a comma-separated list of format names.

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

虽然它确实有一些问题:

  • 您不能定位 window,因此可能会打开一个新的 window,然后您将打开您的网络应用程序两次
  • 您需要网络应用程序和本机应用程序来支持如何return数据的约定。