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



查看https://developer.chrome.com/multidevice/android/intents那么,从应用程序将结果返回到Chrome浏览器的最佳方式是什么?有browser_fallback_url,但有任何类型的result_callback处理程序吗?问题类似于如何从Chrome内部触发Intent将结果返回到您的网页?

编辑:已启动此问题https://code.google.com/p/chromium/issues/detail?id=572067

Chrome没有用startActivityForResult启动"活动",因此接收应用程序没有简单的方法可以直接回调到网站或web应用程序中,并像您在本机中预期的那样做出响应。

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

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

在Android上,您可以从网页调用条形码扫描仪,并通过回调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应用程序会打开两次
  • 您需要web应用程序和本机应用程序来支持如何返回数据的合同

最新更新