一、简介
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里

dcloud从入门到入坑相关推荐

  1. Kubernetes ~ k8s 从入门到入坑。

    Kubernetes ~ k8s 从入门到入坑. 文章目录 Kubernetes ~ k8s 从入门到入坑. 1. Kubernetes 介绍. 1.1 应用部署方式演变. 1.2 kubernete ...

  2. java爬山问题,关于java:不爬山不拍照设计模式入门到入坑第一课

    作者爱谈话 明天是刚好来杭州的第二周,也是一个惬意的周五,很巧也是我的生日,将来的工作可能会很忙,还是会持续保持 sharing (原本昨天发的,然而还想欠缺欠缺就又拖了一天,哈哈.奥利给) [腾讯云 ...

  3. 【Flutter从入门到入坑】Flutter 知识体系

    学习 Flutter 需要掌握哪些知识? 终端设备越来越碎片化,需要支持的操作系统越来越多,从研发效率和维护成本综合考虑,跨平台开发一定是未来大前端的趋势,我们应该拥抱变化.而 Flutter 提供了 ...

  4. 正则表达式从入门到入坑

    正则表达式从入门到入坑 入坑前先介绍两个辅助网站: 正则表达式测试网站:https://regex101.com 正则表达式思维导图:https://regexper.com 正则基础(入门) 1.元 ...

  5. markdown 本地链接_Markdown从入门到入坑

    给大家安利一款我最近特别喜欢的软件typora. 是什么:typora是一款用Markdown语言编写文档的软件.那么问题来了,什么是Markdown? Markdown是一个标记性语言,使用约定好的 ...

  6. 鸿蒙系统nas,NAS从入门到入坑:我发现了FreeNAS、My Cloud 、群晖的套路

    二是个人的影视观看习惯是先下载后播放,很少在线看.好在有朋友是网络技术方面的高手,你只要告诉他需求,准能得到一个满意的答案. 这个路由器的亮点就是支持迅雷下载,这也是首次使用能脱机下载的路由器. 插上 ...

  7. Shell 编程 ~ 从入门到入坑。

    Shell 基础. 文章目录 Shell 基础. Shell 概述. Shell 的分类. Shell 脚本的执行方式. 第一个脚本. Bash 的基本功能. 历史命令与补全. 历史命令的调用. 命令 ...

  8. Hbase从入门到入坑

    本博客已迁移至微信公众号!将不再更新 关注公众号即可获得免费学习资源,获得免费指导!!! 公众号后续将会持续更新clickhouse,sparkstreaming,flink,数仓建模,用户画像,实时 ...

  9. 动态规划教学,入门到入坑完整版,包含几十道例题

    动态规划 适用的题目类型: 1,多阶段决策问题 2,最优性原理 3,最优子结构特性 背包dp 01背包dp 核心代码 for(int j=0;j<=T;j++)//边界初始化 可以不需要{if( ...

最新文章

  1. 华为云计算之ebackup了解
  2. 关于“ModuleNotFoundError: No module named ‘flask._compat‘”的解决
  3. mysql relaylog 慢_MySQL 主从同步延迟的原因及解决办法
  4. Git使用技巧(1)-- 配置【持续更新】
  5. JavaScript常用方法(工具类的封装)
  6. 将字符串中的指定字符全局替换
  7. 工作269:uni--客流分析优化
  8. LeetCode 1944. 队列中可以看到的人数(单调栈)
  9. ie11浏览器可以下载java吗_如何卸载IE11? 如何安装低版本的IE浏览器?
  10. LightGBM常用模板
  11. java输出回文数原代码_C++编程入门:判断回文数
  12. php 采集网站关键字,php远程获取网站的关键字信息(并附:php判断字符串编码)...
  13. 高等数学所有符号的写法与读法
  14. Ignite 的使用过程(一)
  15. 室友还不知道FAST中国天眼是什么,快把这篇文章推给他,浅学一手卫星通信
  16. Bada学习-多任务模式
  17. EXCEL兼容性检查
  18. 医院信息系统源码 HIS源码
  19. phpstorm配置phpunit单元测试及PHPunit断言函数
  20. 独家秘技||如何快速入门一个陌生知识领域?

热门文章

  1. ContentProvider基本使用初探
  2. 基于Word的论文多级标题与图表题注的解决办法
  3. python使用大漠插件教程_python调用大漠插件教程04鼠键事件及基本项目思维
  4. 【JavaScript】数据类型
  5. 要想成为一个优秀的测试工程师,需要具备哪些知识和经验?
  6. CentOS 7安装Mongodb并使用Robo 3T远程测试连接
  7. SEIR传染病模型Netlogo仿真程序
  8. 数学问 高考数学复习资料策略整理
  9. 实验:跨域VPN-OptionC方式-方案一
  10. Linux (CentOS) 系统下载地址