使用Cordova将您的前端JavaScript应用打包成手机原生应用

假设我用JavaScript和HTML开发了一个前端应用,我想把该应用打包成能直接在手机上安装和运行(不经过浏览器)的原生应用,例如像下面这样。对应用的用户来讲,他们获得的用户体验和真正的用Android Studio或者XCode开发的原生应用彻底一致。html

这是怎么作到的?前端

答案是使用Apache的开源框架,Cordova。node

以Android框架为例,Cordova能将您的前端应用里的JavaScript和HTML资源打包成Android原生的apk文件,能够直接在安卓手机上安装。运行时,这些JavaScript和HTML直接运行在Cordova提供的一个嵌入式的WebView控件里,对于手机用户来讲,他们对此绝不知情,觉得本身使用的是手机原生应用。android

下面就跟着我一步一步来使用Cordova打包您的前端项目吧。npm

1. 在电脑上安装nodejs,把安装后的目录加入到Path环境变量中去。浏览器

2. 使用nodejs的包管理器npm安装Cordova。命令行:npm -g install cordova:app

3. 建立一个新的文件夹,而后进入该文件夹,建立一个新的Cordova项目。命令行:框架

cordova create JerryUI5HelloWorld测试

因而一个新的Cordova项目被自动建立出来了。里面包含不少子文件夹。gradle

Platforms文件夹是空的,由于此时咱们还没有添加该Cordova项目支持的移动平台。

4. 假设咱们想打包成一个能够安装到Android平台的应用,那么得为该Cordova项目添加对Android平台的支持。使用命令行添加:cordova platform add android

命令行执行完毕后,咱们敬如platforms文件夹,发现多了一个android文件夹,里面多出不少文件夹和资源。这些自动生成的东西都是最后打包生成安卓应用APK文件所必须的。

若是一切正常,咱们会获得下面的目录结果。

5. www文件夹下有个自动生成的index.html文件。咱们用命令行cordova prepare, 这个index.html会自动被拷贝到文件夹platformsandroidassetswww下面。这揭示了Cordova使用的一个最佳实践:咱们全部的前端开发,都是直接在Cordova项目文件根目录的www文件夹内进行。开发结束后,使用cordova prepare,根目录的www文件夹里的资源会自动被拷贝到该项目支持的移动平台对应的文件夹内,在个人例子里是platformsandroidassetswww。

一切就绪了。如今使用命令行cordova compile进行打包,安卓应用的APK文件就生成在文件夹platforms/android/build/output/apk里了。

注意cordova compile这个命令须要您本地安装Gradle,若是安装,会遇到下列错误消息:

Error: Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio。

我没有选择安装庞大的Android Studio,而是下载了gradle的二进制版本,将其加入到Path环境变量中便可。

将APK安装到您的手机上,执行,您会看到下列这个默认的界面。这实际上是Cordova项目建立后生成的缺省的index.html打包安装到手机后运行的效果。

剩下的事情就很容易了,把您的前端应用的全部资源所有拷贝到Cordova项目文件根目录下的www文件夹里,而后执行cordova prepare, 将这些资源自动同步到文件夹platformsandroidassetswww下面,再次执行命令行cordova compile从新生成APK文件便可。

若是没有Android手机,也能够用Android Studio里提供的模拟器来测试。

在Android Virtual Device Manager里建立一个新的虚拟设备:

而后使用命令行将cordova compile生成的APK文件安装到模拟器上:

adb install j.apk

如今就能在Android模拟器里使用您的前端应用经过Cordova打包生成的应用了。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

相关文章
相关标签/搜索