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

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

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

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

【问题讨论】:

    标签: progressive-web-apps


    【解决方案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 从本机应用程序接收意图或广播消息。我觉得不可能。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 2012-11-15
    相关资源
    最近更新 更多