为什么 html5 应用程序在浏览器中的工作方式与在 Cordova (Android) 中的工作方式不同?
why does an html5 app work differently in the browser than it does in Cordova (Android)?
为什么在浏览器中运行良好的 HTML5 应用程序在使用 Cordova 为 Android 编译时会有所不同?
cordova 不支持所有与浏览器相同的东西吗?
我主要想到/指的是JavaScript的工作方式。
因为 Cordova 使用本机浏览器视图。某些 JS 实现可能不同于 Chrome、Firefox 等。
这主要是出于安全原因,或者对于 webview 本身(取决于平台),您可能会有一些限制或差异。
Cordova 本身不处理应用程序的表示层。 Cordova 创建了一个基本的单一视图本机应用程序,其中单一视图是 webview
。 Web 视图是应用程序在其中实现的 platofrm/SDK 的本机视图。
因为 webviews 与 SDK 打包在一起,所以它们不像设备上的浏览器那样可更新。这意味着您创建的代码可能 运行 在设备上的浏览器中正常运行,但在本机 Web 视图中可能 运行 不正常。此外,您的代码可能适用于更新版本的 platform/SDK 而不是旧版本。
如果您在 webview 中使用特定项目时遇到问题,最好从您遇到问题的 platform/SDK 版本中查找该特定 webview 的功能。
一个例子是使用最新版本的 Cordova 构建一个 Android 应用程序,利用 canvas
元素。如果您将应用程序部署到 运行ning Android 5.0 设备上,您将没有问题,但如果您在 运行ning Android 2.3.4 设备上部署相同的应用程序您的应用程序似乎无法运行。这不是因为 Cordova,而是因为各种 platform/SDK 版本中 webview 的功能。
尝试防范此类问题的一种方法是使用框架。原因是大多数前端框架都内置了与各种版本 webviews/browsers/etc.
的兼容性的回退。
为什么在浏览器中运行良好的 HTML5 应用程序在使用 Cordova 为 Android 编译时会有所不同?
cordova 不支持所有与浏览器相同的东西吗?
我主要想到/指的是JavaScript的工作方式。
因为 Cordova 使用本机浏览器视图。某些 JS 实现可能不同于 Chrome、Firefox 等。
这主要是出于安全原因,或者对于 webview 本身(取决于平台),您可能会有一些限制或差异。
Cordova 本身不处理应用程序的表示层。 Cordova 创建了一个基本的单一视图本机应用程序,其中单一视图是 webview
。 Web 视图是应用程序在其中实现的 platofrm/SDK 的本机视图。
因为 webviews 与 SDK 打包在一起,所以它们不像设备上的浏览器那样可更新。这意味着您创建的代码可能 运行 在设备上的浏览器中正常运行,但在本机 Web 视图中可能 运行 不正常。此外,您的代码可能适用于更新版本的 platform/SDK 而不是旧版本。
如果您在 webview 中使用特定项目时遇到问题,最好从您遇到问题的 platform/SDK 版本中查找该特定 webview 的功能。
一个例子是使用最新版本的 Cordova 构建一个 Android 应用程序,利用 canvas
元素。如果您将应用程序部署到 运行ning Android 5.0 设备上,您将没有问题,但如果您在 运行ning Android 2.3.4 设备上部署相同的应用程序您的应用程序似乎无法运行。这不是因为 Cordova,而是因为各种 platform/SDK 版本中 webview 的功能。
尝试防范此类问题的一种方法是使用框架。原因是大多数前端框架都内置了与各种版本 webviews/browsers/etc.
的兼容性的回退。