【问题标题】:Exposing Native Device APIs to Web Apps向 Web 应用程序公开本机设备 API
【发布时间】:2021-02-06 17:29:34
【问题描述】:

现在有很多方法可以开发应用程序。您可以创建完整的原生应用、混合应用、pwa 或网站。可能有一些我没有提到的应用程序格式,但这不是重点。过去的二十年已经证明,智能手机是大多数人(用户)与应用程序交互的方式,而这显然也是他们想要一直进行交互的方式!开发人员(向导)一直致力于通过创建 .Net blazor、Xamarin、Vue、Angular 等解决方案来满足这些需求,以满足对应用程序及其开发的需求。目前,Google 和 Apple 的应用商店是分发应用的方式,仅用于支付我们应用收入的一部分,因此我们将目光投向了网络。当我们想要创建一个高度安全的应用程序(服务器端)时,我们会寻找网络。当我们想要支持大多数操作系统时,我们会寻找网络。我想你明白了。只有一件事阻碍了用户使用本机设备 API。 HTML5 中已经有很多原生 API,但我们知道这些并不是我们开发的应用程序所需的特定 API。那么我们可以通过哪些方式将原生设备 API 公开给 Web 应用呢?

【问题讨论】:

    标签: javascript c# android ios progressive-web-apps


    【解决方案1】:

    查看 Cordova 插件:https://cordova.apache.org。如果您想将 API 公开到 Web 中,您只需编写一些播放器应用程序(Web 浏览器)即可将 JS 命令转换为原生 API 回调。要实现它,你可以使用WKScriptMessageHandler
    Here你可以找到一个例子。
    它不是很复杂,但是如果你想覆盖所有的API,代码会很复杂。
    此外,您忘记了 Web 应用程序的一个硬币:响应时间长,尤其是在互联网连接较低的情况下。我认为这不是一个好主意。

    【讨论】:

    • 低互联网连接肯定是一个障碍,但是对于我正在创建的应用程序,用户将在一个地方,当他们使用它时,将有一个良好和快速的 wifi 连接。 Cordova 仍然将 Web 视图包装在本机应用程序中,这并不是我真正想要的。
    • 如果你需要暴露原生API,你应该编写原生应用程序。但是你的应用程序就像一个带有扩展 java API 的互联网浏览器,它将 JS 函数、变量、类转换为本地函数、变量和类。据我了解,您想在 Safari 中执行此操作,这是不可能的。 Safari 不提供这样的 JS API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多