dcloud从入门到入坑

一、简介
dcloud是一个webapp云打包平台,你可以通过他扩展你的网页功能
官方叫他们的产品名字为

HTML5 Plus移动App,简称5+App,是一种基于HTML、JS、CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与原生App同样强大的功能和性能。

嗯,是一种基于HTML、JS、CSS编写的运行于手机端的App,那么具体是怎么做的呢?
继续看文档

HTML5+扩展了JavaScript对象plus,使得js可以调用各种浏览器无法实现或实现不佳的系统能力,设备能力如摄像头、陀螺仪、文件系统等,业务能力如上传下载、二维码、地图、支付、语音输入、消息推送等。

扩展了一个plus对象啊,就是说可以通过dcloud实现的plus对象来调用原生api。
但是dcloud并不是把所有的原生api都封装到时plus对象中。
dcloud把api分为两部分
1.HTML5Plus规范

常用的扩展能力,比如二维码、语音输入,都封装到了规范中,同时实现了Android和iOS的解析引擎,使得开发者的代码编写一次,可跨平台运行。只要调用plus.对象(html5plus规范的对象,详细请看文档)
html5plus是常见的原生api,并不是所有的原生api,原生的api太多了。但是dcloud也可以调用其他api,就是第二部分

2.natave.js

Native.js把几十万原生API映射成了js对象,通过js可以直接调ios和android的原生API。这部分就不再跨平台,写法分别是plus.ios和plus.android,比如调ios game center,或在android手机桌面创建快捷方式,这些都是平台专有的api。Native.js把几十万原生API映射成了js对象,通过js可以直接调ios和android的原生API。这部分就不再跨平台,写法分别是plus.ios和plus.android,比如调ios game center,或在android手机桌面创建快捷方式,这些都是平台专有的api。

二、5+ App概念解析

首先开发者需要清楚你要做什么,是一个mobile web项目,运行里浏览器里?还是要做一个app,安装和运行在手机上?或者要把一个mobile web项目打包成app?
1. 做一个mobile web项目
在这个模式下,开发者用不到HTML5Plus,使用标准的HTML5语法,运行在浏览器里。这不算5+ App。
此时开发者仍然可以使用HBuilder这个开发工具,新建项目时选择web项目。
开发者也仍然可以使用DCloud提供的mui开源框架,来简化ui的开发。
但这就是一个普通的web项目,b/s方式,不可脱线运行,不能调用HTML5Plus的增加api。
2. 做一个正统的app
传统意义上的app,是c/s方式的,它的程序要安装和运行在手机上,不通过浏览器在线下载。
此时开发者在HBuilder里新建项目时,选择“移动App”。
在移动App项目下编写的HTML、js等文件,是会被打包到原生的安装包(Android是apk包、iOS是ipa包)里的。
此时本地的js和服务器通过ajax交互,由服务器按接口方式给出数据(一般是json),然后客户端的js文件解析json,并根据本地的业务逻辑来渲染页面和执行功能。
所以请不要新建一个移动App项目,然后把本来运行在服务器端的php等文件也都丢到这个项目下。
web项目始终是web项目,哪怕要在app项目里某个界面里,在线加载一个远程的网页,也要把这个远程网页的代码,放到web项目下。
移动App项目下,只有能有html、js、css、json以及一些图片或数据文件,不能包括php、jsp、py等服务器页面。
3. 使用wap2app打包mobile web项目为app
如果开发者想把一个做好的mobile web站,方便快速的打包成app,那么要使用DCloud的wap2app框架。
在HBuilder中新建项目时,选wap2app项目,把mobile web站的url输入进去,参考框架的教程来配置。
wap2app不同于普通的web打包技术,wap2app可真正做达到原生应用的功能和性能体验。
具体教程另见:文档中心-wap2app,http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/1244
wap2app属于5+app,它底层也是强大的HTML5Plus规范和Native.js在支撑。
wap2app项目下的所有文件,也都是打包在本机运行的。
4. 如果你想开发一次,全端覆盖,那么需要使用mui框架
具体参考:http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/591

官方入门
我拿dcloud都是用来把vue打包后的文件,放到dcloud进行打包,做一些原生api处理,如返回按纽啥的。代码都写在index.html里

你可能感兴趣的:(js)