【问题标题】:why does an html5 app work differently in the browser than it does in Cordova (Android)?为什么 html5 应用程序在浏览器中的工作方式与在 Cordova (Android) 中的工作方式不同?
【发布时间】:2015-01-23 00:00:54
【问题描述】:

在浏览器中运行良好的 HTML5 应用程序在使用适用于 Android 的 Cordova 编译时会出现不同的运行方式,这有什么原因吗?

cordova 不支持和浏览器一样的东西吗?

我主要考虑/指的是 JavaScript 的工作方式。

【问题讨论】:

  • 除了一般的“JavaScript”之外,您是否遇到了某个特定功能?

标签: javascript html cordova


【解决方案1】:

Cordova 本身不处理应用程序的表示层。 Cordova 创建了一个基本的、单一视图的本机应用程序,其中单一视图是webview。 webview 是应用程序所在的 platofrm/SDK 原生的。

因为 webview 是与 SDK 一起打包的,所以它们不像设备上的浏览器那样可更新。这意味着您创建的代码可以在设备上的浏览器中正常运行,但可能无法在本机 webview 中运行。此外,您的代码可能适用于较新版本的平台/SDK,而不适用于旧版本。

如果您在 web 视图中使用特定项目时遇到问题,最好从您遇到问题的平台/SDK 版本中查找该特定 web 视图的功能。

例如,使用最新版本的 Cordova 构建一个使用 canvas 元素的 Android 应用程序。如果您将应用程序部署到运行 Android 5.0 的设备上,您不会有任何问题,但如果您在运行 Android 2.3.4 的设备上部署相同的应用程序,您的应用程序将无法运行。这不是因为 Cordova,而是因为各种平台/SDK 版本中的 webview 功能。

尝试和防范此类问题的一种方法是使用框架。原因是大多数前端框架都内置了与各种版本的 webviews/browsers/etc 兼容的回退。

【讨论】:

  • 谢谢。这解释了很多,也是我希望得到的答案。再次感谢。
【解决方案2】:

因为 Cordova 使用本机浏览器视图。一些 JS 实现可能与 Chrome、Firefox 等不同。

这主要是出于安全原因,或者对于 webview 本身(取决于平台),您可能会有一些限制或差异。

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 2017-10-24
    • 1970-01-01
    • 2018-11-23
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多