接收 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() 在第二个活动中不起作用