【问题标题】:How do you call an Android app and get a result back from a web page in Chrome?您如何调用 Android 应用程序并从 Chrome 中的网页返回结果?
【发布时间】:2015-12-10 09:23:01
【问题描述】:

查看https://developer.chrome.com/multidevice/android/intents 那么从应用程序将结果返回到 Chrome 浏览器的最佳方法是什么?有 browser_fallback_url 但是否有任何类型的 result_callback 处理程序?问题类似于How to get a result back to your web page from an Intent triggered from inside Chrome?

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

【问题讨论】:

    标签: 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 应用和原生应用都支持数据返回方式的约定。

    【讨论】:

    • 请不要对多个问题发布相同的答案。发布一个好的答案,然后投票/标记以关闭其他问题作为重复问题。如果问题不是重复的,调整您对该问题的回答
    • 有趣,我看到答案 99% 相同且相关,但这两个问题虽然在相似的领域,但完全不同。
    • 一般来说,如果两个问题的答案相同,则将它们视为重复问题——请参阅meta.stackexchange.com/a/10844/253560
    • 这种解决方案存在更多问题。 1. 多个应用程序可以作为该 URL 的候选者 2. 响应发送到服务器。您可以按意图将 javascript 发送到 chrome 吗?
    • 如果您知道要调用的应用程序,请同时包含包名称。
    猜你喜欢
    • 2017-04-24
    • 1970-01-01
    • 2020-04-23
    • 2013-01-09
    • 1970-01-01
    • 2012-08-21
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多