接收 Intent 到 Progressive Web App

Posted

技术标签:

【中文标题】接收 Intent 到 Progressive Web App【英文标题】:Receiving Intents into Progressive Web App 【发布时间】:2019-09-07 01:24:15 【问题描述】:

我正在尝试为我们的业务构建一个库存管理应用程序。我没有太多构建原生应用程序的经验,所以我开始研究渐进式网络应用程序。我们正在使用安装了数据楔的 Zebra TC 设备,这将允许我通过 Intent 系统将条形码读数输出到 android 应用程序。

是否可以将 Android Intent 接收到非原生的渐进式网络应用中?

例如,如果我扫描条形码,我想在将记录该项目的页面上打开 Web 应用程序。所以我扫描条形码,然后将数据发送到 example.com/items/scan?barcode="Scanned Barcode"。

我创建了一个配置文件以将条形码输出到内置的 Android 意图。但是,这不会将 Web 应用程序打开到此页面,它只会将 chrome 应用程序打开到不是所需响应的页面。

意图: android.intent.action.MAIN

意图类别: android.internet.category.LAUNCHER

然后使用格式将 URL 附加到扫描的条形码。

EGhttps://example.com/items/scan?barcode=01234567

以上内容将打开一个新的 Chrome 页面到 URL,但不是我安装的网络应用程序。非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

根据Android docs,看起来应该可以,但是条形码应用的意图可能是错误的类别?

在 Android 上安装 Progressive Web App 时,它将为应用范围内的所有 URL 注册一组意图过滤器。当用户点击应用范围内的链接时,应用将被打开,而不是在浏览器选项卡中打开。

考虑以下部分 manifest.json:

"start_url": "/",
"display": "standalone",

当使用它的网络应用程序是 从应用程序启动器启动,它将打开 https://example.com/ 为 一个独立的应用程序,没有任何浏览器 chrome。

[生成的] WebAPK 将包含以下意图过滤器:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data
    android:scheme="https"
    android:host="example.com"
    android:pathPrefix="/" />
</intent-filter>

如果用户在已安装的应用程序中单击指向https://example.com/read 的链接,它将是 被意图捕获并在 Progressive Web App 中打开。

我对Android不太了解,但是你能换个生成android.intent.category.DEFAULT的条码扫描器吗?

【讨论】:

【参考方案2】:

“是否可以将 Android 意图接收到渐进式网络应用中,因为它不是原生的?”

没有。

参考:PWA interoperability with Android apps/services?

【讨论】:

以上是关于接收 Intent 到 Progressive Web App的主要内容,如果未能解决你的问题,请参考以下文章

如何获取接收到 Intent 的变量,使其成为静态变量,并将其发送到 Android 上的另一个类?

Android通过intent传值,无法接收到值,代码如下:

android广播里怎么实现Intent页面跳转 广播接收到信息就跳转

android广播里怎么实现Intent页面跳转 广播接收到信息就跳转

intent.getextra() 正在接收 null 并且 intent.hasextra() 在第二个活动中不起作用

急!!Android系统中,广播Intent的问题