progressive-web-apps - PWA 与 Android 应用程序/服务的互操作性?

标签 progressive-web-apps

我们知道我们的一些代码必须是原生代码,但是可以封装成Android服务。我们想将面向 UI 的部分创建为渐进式 Web 应用程序 (PWA)。

PWA 有没有办法与设备上的 native 应用程序交互(例如,使用参数调用它们并处理其他应用程序的回复/广播)?

PWA 调用意图可以被称为意图等吗?有哪些可能性?

最佳答案

发送共享意图(通过 Web Share API)

Chrome Dev Summit 2016 ,团队宣布Web Share API ,它允许 PWA 调用设备的 native 共享功能(例如,参见 Android demo video)以响应用户手势(例如,通过单击链接;不能自动)。 API 是非常新的,并且是在原始试验之后。

以下示例单击处理程序调用 Share Intent,它会调出 native 应用程序选择器以与用户选择的应用程序共享数据。传递 URL(可选)允许该应用程序向用户提供链接,例如查看详细信息。

function onClick() {
    navigator.share({
        title: document.title,
        text: "Hello World",
        url: window.location.href
    })
    .then(() => console.log('Successful share'))
    .catch(error => console.log('Error sharing:', error));
}

从 Chrome 发送 Android Intent

可以使用 intent URLs 从 PWA 发送 Android 意图.此方法还需要用户手势来启动(例如,通过单击链接;不能是自动的)。

意图语法是:
intent:
   HOST/URI-path // Optional host 
   #Intent; 
      package=[string]; 
      action=[string]; 
      category=[string]; 
      component=[string]; 
      scheme=[string]; 
   end; 

例如,单击此 anchor 标签会启动 ZX Barcode Scanner 应用程序:

<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end"> Take a QR code </a>

接收 Android Intent

我没有发现 PWA 从 native 应用程序接收意图或广播消息。我不认为这是可能的。

关于progressive-web-apps - PWA 与 Android 应用程序/服务的互操作性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40858803/

相关文章:

javascript - 尝试与服务 worker 一起显示离线页面,但即使在离线状态下,我的请求也会收到 200 响应

javascript - PWA 缓存刷新页面

javascript - 如何在使用 preact.js 构建的 android 上部署 PWA?

javascript - 将网站更新为 Progressive Web App

javascript - Web App 卸载后不显示 "add to home screen"

javascript - 渐进式 Web 应用程序不在根文件夹中

javascript - 难以通过网络蓝牙连接热敏打印机

javascript - Service worker 'sync' 事件在 IOS 上不起作用,如何将离线数据存储到 indexedDB 中?

javascript - 短期响应缓存中的 XHR 调用

progressive-web-apps - 如何更改 Vue PWA 应用程序的应用程序名称?