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

Posted

技术标签:

【中文标题】PWA 与 Android 应用程序/服务的互操作性?【英文标题】:PWA interoperability with Android apps/services? 【发布时间】:2017-04-13 00:45:03 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

以下示例点击处理程序调用 Share Intent,它会启动本机应用选择器以与用户选择的应用共享数据。传递 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 Intents

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

意图语法是:

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

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

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

接收 Android Intents

我没有发现 PWA 从本机应用程序接收意图或广播消息。我觉得不可能。

【讨论】:

RE:接收意图,与developers.google.com/web/fundamentals/integration/…有关吗? 如果我想将 Android Intent 从 Chrome (PWA) 发送到 Andoird 设置应用程序怎么办?

以上是关于PWA 与 Android 应用程序/服务的互操作性?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google FCM 和 Microsoft azure 作为托管服务器从 chrome for android 上的 PWA 发送推送通知

是否可以在本地网络/热点中设置 websocket 服务器(android/ios)并通过 PWA 连接?

如何使用 JavaScript (PWA) 在 Android 设备上为 FCM 创建 channel_ID?

Android入门第43天-Activity与Activity间的互相传值

Android-----js和android的互调

insert与索引的互影响