随着移动设备的普及和Web技术的快速发展,开发能够同时在多个平台上运行的Web应用变得越来越重要。ManifoldJS是一个开源框架,它能够将网站转换成适用于Windows、iOS、Android、Chrome和Firefox的应用,大大简化了跨平台托管应用的创建过程。本文将介绍如何使用ManifoldJS和Crosswalk来创建跨平台的Web应用,并探讨Crosswalk的重要性及其可能的弊端。
ManifoldJS是一个在Microsoft Build 2015大会上首次亮相的开源框架。它可以通过命令行工具node.js运行,或者使用基于Web的工具。以下是安装并运行ManifoldJS的简单步骤:
首先,确保已经安装了node.js。然后,打开最喜欢的命令提示符(在Mac或Linux上是终端),并输入以下命令:
npm install manifoldjs -g
这样,就安装了ManifoldJS。接下来,可以通过添加Crosswalk标志到启动参数中,来构建一个托管的Web应用。
Crosswalk是一个由crosswalk项目工程化的Web运行时环境。它将开源的Chromium和Blink引擎编译成一个现代的、最新的运行时环境。可以将Crosswalk视为一个强大的Web视图。实际上,当设置了Crosswalk标志时,会用它来替代传统的Android Web视图。
使用Crosswalk,可以确信应用能够使用最新的HTML5特性,如WebGL、IndexedDB、WebSockets和CSS3。例如,以下是一个使用默认Web视图生成的WebGL应用的输出,它是由ManifoldJS通过以下命令行生成的:
manifoldjs http://get.webgl.org/
这是同一个应用在启用Crosswalk后的样子。它是在添加了-c(或--crosswalk)开关到之前的命令行后生成的:
manifoldjs http://get.webgl.org/ --crosswalk
或者
manifoldjs http://get.webgl.org/ -c
使用Crosswalk,可以确保所有用户都能获得预期的体验。
Crosswalk是一个由crosswalk项目工程化的Web运行时环境。它将开源的Chromium和Blink引擎编译成一个现代的、最新的运行时环境。可以将Crosswalk视为一个强大的Web视图。实际上,当设置了Crosswalk标志时,会用它来替代传统的Android Web视图。
Crosswalk支持带来了两个主要优势。首先,它是一个“更新”的Web运行时环境。对于运行最新版本的Android OS的Android用户来说,这可能不是一个很大的优势,但对于运行旧版本OS的用户来说,这是一个巨大的改进。Crosswalk Web视图将为提供所有最新的HTML5特性和性能提升,超过了传统的Web视图。
其次,Crosswalk提供了一个一致的运行时环境。考虑到今天使用的Android版本多种多样,有这么多不同的Android Web视图版本,所以被迫编写最低公共分母的代码。使用Crosswalk消除了这个障碍。此外,运行时环境只会在应用中更新,而不是随着OS更新。知道许多企业用户依赖这种一致性来构建他们的应用。
只能想到一个原因,不想使用Crosswalk。应用大小。生产的平均每份.apk文件(Android应用文件)只有几兆字节。将Crosswalk添加到应用中会额外增加20MB,一旦安装在设备上,接近60MB。需要做出决定,以确定资源成本是否值得。
将运行时与应用捆绑在一起是最简单的分发方式,但Crosswalk应用也可以共享单个运行时库(在“共享模式”下)以减轻负担。Crosswalk for Android分发中包含一个启用共享模式的包。然而,必须自己分发这个共享运行时包。访问Crosswalk wiki以获取更多详细信息。
请记住,托管Web应用的本质是,在Web服务器上进行应用更新,所以在大多数情况下,增加的包大小的成本会在初始下载时感受到,而不是像常规原生应用那样每次更新都感受到。
很高兴支持Crosswalk Web运行时环境。它填补了Android系统的一个空白,使开发更简单、更可靠。用下一个ManifoldJS应用试试Crosswalk,看看想法。有关Crosswalk的更多信息,请访问网站https://crosswalk-project.org/。要从网站开始构建商店应用,请访问www.manifoldjs.com并开始。
本文是微软技术传道者关于实用JavaScript学习、开源项目和互操作性最佳实践的Web开发系列文章的一部分,包括Microsoft Edge浏览器和新的EdgeHTML渲染引擎。