【发布时间】:2015-01-23 00:00:54
【问题描述】:
在浏览器中运行良好的 HTML5 应用程序在使用适用于 Android 的 Cordova 编译时会出现不同的运行方式,这有什么原因吗?
cordova 不支持和浏览器一样的东西吗?
我主要考虑/指的是 JavaScript 的工作方式。
【问题讨论】:
-
除了一般的“JavaScript”之外,您是否遇到了某个特定功能?
标签: javascript html cordova
在浏览器中运行良好的 HTML5 应用程序在使用适用于 Android 的 Cordova 编译时会出现不同的运行方式,这有什么原因吗?
cordova 不支持和浏览器一样的东西吗?
我主要考虑/指的是 JavaScript 的工作方式。
【问题讨论】:
标签: javascript html cordova
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 兼容的回退。
【讨论】:
因为 Cordova 使用本机浏览器视图。一些 JS 实现可能与 Chrome、Firefox 等不同。
这主要是出于安全原因,或者对于 webview 本身(取决于平台),您可能会有一些限制或差异。
【讨论】: