第一个 HTML5Plus 移动应用
什么是 HTML5Plus 移动应用
HTML5 Plus移动App,简称5+App,是一种基于HTML、JS、CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与原生App同样强大的功能和性能。
简单一句就是,用开发 Web 的技术完成原生移动应用的开发。
概念澄清
HTML5+
HTML5+规范是一个开放规范,隶属于工信部,允许三方浏览器厂商或其他手机runtime制造商实现。
HTML5+ 和 HTML5,名字只有一词之差,但是目前而言是完全两个不同的东西。
5+App 与 移动 Web
虽然 5+App 与移动 Web 开发,采用的相关技术大体一致,但是两者的区别还是很明显的。
- 5+App 是 C/S 的,Web 是 B/S 的。
- 5+App 是独立的客户端,应用资源通常只能是静态的文件。PHP、JSP 这些服务器模板,没有解析器去处理。
- 5+App 打包后是 apk 及 ipa 后缀的包,也就是原生的移动应用。
window.plus扩展的 API,依赖 5+Runtime 引擎。普通浏览器没有集成这个引擎,Web 开发通常用不了这些 API。
小结
以上说了这么多,目的就是帮助大家搞清楚 HTML5+ 是干什么的。作为开发者,首先搞清楚自己要开发移动应用还是 Web。别一看名字,就想当然地去用这个技术去开发 Web。
准备工作
开发工具
HBuilder 内置了 5+App 的开发环境,因此需要先下载此 IDE。
注册账号
下载并解压 HBuilder 后,启动 IDE。首次使用需要注册一个账号,方便之后管理应用以及在社区活动。
设备
由于在下没有 iOS 设备以及 Mac OS 的机器,因此这个系列的分享都是以 Windows 系统下开发 Android 应用为例。
一台电脑,一部手机。手机最好是 Android 4.4 及以上的,不推荐用模拟器。USB 线也是必须的,当然 HBuilder 同样支持 WiFi 调试。
第一个 5+App
新建应用
- 启动 HBuilder,并且登录。
- 菜单 -> 文件 -> 新建 -> 移动 App
模板暂时不需要调整,输入应用名“HelloWorld”,点击完成即可。
index.html
应用的入口页面,概念和 Web 的入口页类似。默认是应用根目录下的 index.html,这个可以调整。
manifest.json
5+App 的配置文件,用于配置应用的信息。HBuilder 对此文件做了特殊处理,并提供了可视化的编辑界面。
- 应用信息
- 应用名称:就是你的应用在手机桌面上显示的名字。
- appid:这个是 5+App 创建时分配的,不要修改。更不要和 iOS 的 AppID 或者其它第三方平台上的 appid 混淆。
- 版本号:应用版本号
- 页面入口:就是首页是哪个页面,可修改。
- 应用描述:简单说明一下应用的信息
- 图标配置
- 就是应用的 logo,按照提示做一张符合规格的图,然后一键生成替换。
- 启动图片
- splash 图就是应用启动的时候那张占位的图片,QQ 是个企鹅,微信是那个月球。
- 启动选项:通常用默认的就行,根据需要调整。
- 图片设置:按照需要,制作相应尺寸的 png 图,选择配置即可。
- SDK 配置
- 如果用到了一些第三方的 SDK 的功能,就需要配置相应的信息。
- SDK 启用需填写的信息,去相应的第三方开放平台注册即可。
- 模块权限配置
- 某些模块的启用需要配置下权限
- 页面引用关系
- 不是特别懂,看说明书吧。
- 代码视图
配置的源代码部分,不是所有配置都提供了可视化编辑视图。
真机运行
将手机连上电脑,HBuilder 会自动检测到连接到电脑上的设备。菜单 -> 运行 -> 真机运行,选择你的设备即可。首次使用会安装一个调试基座 HBuilder,如果 HBuilder IDE 版本变化的话,真机运行会覆盖旧版本的 HBuilder 基座。
调试
- 页面的样式,推荐使用电脑的 Chrome 浏览器手机模式进行调试。
- Android 真机运行时,每次修改完文件并保存,手机端的基座会同步代码。
- Android 还是可以使用 Chrome RemoteDebugging 进行调试,但是需要是 Android 4.4 以上的设备并且首次需要FQ。
调用 5+API
简单封装一下扩展 API 加载完成的事件回调
var plusReady = function(callback) {
if(window.plus) {
callback();
} else {
document.addEventListener('plusready', callback);
}
};
然后,读取下当前设备连接的网络类型并输出到页面上。
plusReady(function() {
var netType = plus.networkinfo.getCurrentType();
document.write('当前网络类型为:' + netType);
});
真机运行,可以看到页面上的内容“当前网络类型为:3”,也就是 WiFi 网络环境。
打包
- 确认 manifest.json 中的信息无误
- logo 及 splash 图不配置的话,会用默认的 HBuilder 相关图片。
- 菜单 -> 发行 -> 云打包-打原生安装包
- 勾选 Android,Android 的证书相对随意一些,用 DCloud 提供的现成的或者自己生成的都一样。
- 包名要严格遵循 Android 包名的格式规范,不要乱写。这里调整一下,改为
com.helo.html5plus。 - 如果配置信息有错误,会有提示,必须修改正确才能继续。
- 一切无误之后,点击“打包”,等待即可。
- 打包完成后,会自动下载到相应的目录下。
安装
将云打包下载下来的 apk 安装到手机上,启动应用就可以查看当前网络状态信息。那么,我们的第一个 5+App 就顺利制作完成了。
参考文档
第一个 HTML5Plus 移动应用的更多相关文章
- 为什么很多人坚信“富贵险中求”?
之家哥 2017-11-15 09:12:31 微信QQ微博 下载APP 摘要 网贷之家小编根据舆情频道的相关数据,精心整理的关于<为什么很多人坚信"富贵险中求"?>的 ...
- python基础全部知识点整理,超级全(20万字+)
目录 Python编程语言简介 https://www.cnblogs.com/hany-postq473111315/p/12256134.html Python环境搭建及中文编码 https:// ...
- [重磅] 让HTML5达到原生的体验 系列之中的一个 避免切页白屏
非常多人都想.甚至曾使用HTML5开发跨平台App.而且想达到原生App的体验. 最后的结果都是无奈的放弃.HTML5貌似美好,但坑太多.想做到原生App的体验差点儿不可为. 也曾有过著名的faceb ...
- 使用Html5开发Android和iOS应用:HBuilder、Html5Plus、MUI
活动主题:五一巨献,问答有礼,105QB送给IT互联网界的劳动人民活动时间:4月30日晚上10点~5月2日晚上10点网址: http://ask.jiutianniao.com 2014年的时候,就 ...
- 基于MUI框架+HTML5PLUS 开发 iOS和Android 应用程序(APP)
目录 事前准备 创建项目 利用MUI写一个简单的页面 关于文件打包 事前准备 # 软件 HBuilder X Web开发IDE 下载地址:https://www.dcloud.io/hbuilderx ...
- Tomcat一个BUG造成CLOSE_WAIT
之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...
- 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑
阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...
- 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成
阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...
- SQLSERVER将一个文件组的数据移动到另一个文件组
SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...
随机推荐
- linux(八)linux系统中查找文件二
前面介绍的是find命令,我们发现一个find命令居然有那么多的命令,我看到都要晕了,不管没有关系,加油.相信自己! 一.grep命令 1.1.作用 Linux系统中grep命令是一种强大的文本搜索工 ...
- 城乡联谊胡策会糊厕R3
因为时间关系这把没设计题面,而且居然还出了锅……T_T 信 原题是leetcode WeeklyContest52 的T1(懒得去找url了 随便搞,但是无解输-1 数字统计 原题PE603 记前n个 ...
- 2017ecjtu-summer training #7 POJ 2689
Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18731 Accepted: 5006 D ...
- HDU--2024
C语言合法标识符 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- hbase性能调优_表设计案例
hbase性能调优案例 1.人员-角色 人员有多个角色 角色优先级 角色有多个人员 人员 删除添加角色 角色 可以添加删除人员 人员 角色 删除添加 设计思路 person表 ...
- css background之设置图片为背景技巧
css background之设置图片为背景技巧-css 背景 Background是什么意思,翻译过来有背景意思.同样在css里面作为css属性一成员同样是有背景意思,并且是设置背景图片.背景颜色. ...
- ADO.NET复习总结(6)-断开式数据操作
一.基础知识 主要类及成员(和数据库无关的)(1)类DataSet:数据集,对应着库,属性Tables表示所有的表(2)类DataTable:数据表,对应着表,属性Rows表示所有的行(3)类Data ...
- hibernate.dialect是干嘛用的?
dialect[ˈdaɪəlekt]就是“方言”,因为hibernate是要把Java对象转换成关系数据库来描述的,而关系数据库虽然有一些统一的标准,如SQL-92等,但是实际上各数据库如Oracle ...
- JAVAEE——BOS物流项目01:学习计划、搭建环境、主页设计(jQuery EasyUI)
1 学习计划 1.项目概述 项目背景介绍 2.搭建项目开发环境 数据库环境 maven项目搭建 svn环境搭建 3.主页设计(jQuery EasyUI) layout页面布局 accordion折叠 ...
- 谈谈JAVA程序的反编译
如今JAVA语言在全世界范围正如火如荼般的流行,它广范地应用在INTERNET的数据库.多媒体.CGI.及动态网页的制作方面.1999年在美国对JAVA程序员的需求量首次超过C++! 最近分析一些 ...