【问题标题】:Is it useful using WebView whole layout in native Android app?在原生 Android 应用程序中使用 WebView 整个布局是否有用?
【发布时间】:2013-02-22 12:36:41
【问题描述】:

我目前正在开发一个原生安卓应用。我的应用程序有很多活动。我想开发native android 应用程序。但在某些情况下,我想使用webview,其中整个布局只是一个 web 视图。不是线性的或相对的或其他布局,只是一个 web 视图。所有以 HTML 格式运行的图像和其他内容。 All of screen will run in HTML5.

所以,我可以将我的应用程序部分转移到 iphone 应用程序或其他平台上。这就是这种方式对我的好处。

但我不知道。这种方式更好吗?会有怎样的表现?转换为 HTML5 应用有什么缺点?

你能解释一下吗?

【问题讨论】:

  • 这无疑是一种替代方式,但应用程序性能取决于您的服务器连接。
  • 我的 webview 不依赖于互联网。它将在本地工作。

标签: android html android-layout android-webview


【解决方案1】:

有一个关于这个主题的very good presentation

  1. 性能:您在两者之间添加了一个额外的层,Webkit 引擎无法始终与本机(有时是硬件加速)渲染性能相匹配。

  2. 缺点:一是API使用有限,可以将页面的JavaScript绑定到Native代码,但并非所有功能都可用。尽管您可能想看看Cordova项目的功能。另一个是通过 JavaScript 模拟复杂的小部件会减慢页面速度。

  3. 便携性:确实是一个很大的优势,这就是为什么PhoneGapCordova 很受欢迎。尽管许多像 Facebook 应用程序等都有 switched to native 应用程序以获得更好的性能。

您需要的方法实际上取决于您的要求。这可能是我个人的咆哮,但恕我直言:到目前为止,标记只能被扭曲,它还不能胜过工业级 GUI 编程设置。

【讨论】:

  • 谢谢,您的回答很有说明性。
  • @BreedHansen 我已经更新了关于该主题的演示文稿的第一个链接。
  • 我也在切换到 Native ...。在我的情况下,WebView 是一个虚假的朋友,一开始一切都是有希望的和酷的等等,但是随着我的应用程序变得越来越复杂,WebView 的响应能力下降了成倍增长,特别是关于用户输入的东西,这对于应用程序的良好声誉至关重要......此外,许多刷新错误突然出现,并且解决方法是电池消耗(使每个 onDraw 无效)......长话短说,忘记HTML5的Webview全屏。原生会更酷。在我的经验中,使用小型 webviews 来完成轻量级任务是可以的。
【解决方案2】:

缺点 WebView

  • 无法使用设备的全部性能,因为 Web 视图形成了一个额外的层。
  • Web 视图无法监听所有用户事件。
  • 您无法将 Web 视图中的数据完全共享或保存到应用程序。
  • 需要更多时间来加载。其他我们在一个简单的 API 中获取所有内容并且可以渲染。
  • 更改页面中的简单字段需要重新加载整页。
  • 需要在线,无法扩展离线功能。
  • 方向更改和全屏会造成困难。

使用 Web 视图的优点

  • Android 和 IOS 都有一个页面。
  • 我认为主要优势是无需每个用户在其设备上更新应用程序即可进行更改,因为所有页面都在您的服务器上。
  • 无需等待应用商店批准更新。

一些技巧

  • 原生元素与 WebView 一起使用。我觉得会好很多,因为有很多功能不能只用WebView来完成。更推荐将两者结合使用。
  • 从本地渲染,为 HTML 文件创建一个资产目录 - Android 内部将其映射到 file:///android_asset/(注意单数资产)。因此,即使您处于离线状态,也可以在本地提供您的 Web 视图表单。

【讨论】:

  • 您确定“需要在线”吗?您可以使用localStorage JavaScript 对象在本地为您的应用存储数据。另外Webview可以通过jquery等监听UI事件
  • 在 PWA 中制作应用程序并使用 web 视图将使我们能够离线存储数据,它有限但可以离线渲染。对于用户事件,您可以简单地调用 API 进行记录,也可以使用 firebase 进行同步。我看到的唯一缺点是性能。不过,如果它不是游戏应用程序,它应该不是问题。
【解决方案3】:

我认为-通过使用这种方式-您的应用程序质量会很弱并且应用程序将难以使用,因为 webview 对象没有很多工具可以使其与 android 兼容。例如,您无法将 Web 视图中的数据共享或保存到应用程序。无论您的应用程序上的参考是什么需要什么不需要什么,顺便说一下,我尝试使用 html 开发应用程序,但这很糟糕。

【讨论】:

  • 我不同意,首先,您的 webview 的内容能够轻松地与应用程序本身进行通信。虽然这是有限的,但对于大多数信息应用程序来说,这可能是一种更安全的方法。 HTML 也确实使网页设计师/开发人员能够轻松地开发出一个由于 HTML/CSS/JS 经验而具有更高质量的应用程序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 2011-08-18
相关资源
最近更新 更多