HTML5plus 移动 App开发入门

59 篇文章 5 订阅
6 篇文章 0 订阅

 咳咳,图片复制不到文章里面来,大家去我的资源里下载吧,PDF版的。

 

 

 

 

 

 

HTML5plus 移动 App开发入门

 

更新时间:2014年 4月 17日

 

 

HTML5 Plus 应用概述

 

 

HTML5 Plus 规范

 

 

通过 HTML5 开发移动 App 时,会发现 HTML5 很多能力不具备。为弥补 HTML5 能力 的不足,在 W3C 中国的指导下成立了 www.HTML5Plus.org组织,推出 HTML5+规范。

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

HBuilder 的手机原生能力调用分 2 个层面:

a)   跨手机平台的能力调用都在 HTML5+ 规范里,比如二维码、语音输入,使用

plus.barcode 和 plus.speech。编写一次,可跨平台运行。

b)   JS Bridge是另一项创新技术,通过 js 可以直接调 ios 和 android 的原生 API,这部 分就不再跨平台,比如调 ios game center,或在 android 手机桌面创建快捷方式。 JSB 的用法是,var obj= plus.android.import("android.content.Intent");,将一个原生对 象 android.content.Intent 映射为 js 对象 obj,然后在 js 里操作 obj对象的方法属性就可以了。

 

 

HTML5+ App

 

 

使用 HTML5+开发的移动 App 并非 mobileweb 页面。这是新手最容易混淆的地方。 mobileweb 的文件存放在 web 服务器上,而移动 App 的文件存放在手机本地,编写移动 App 的 html、js、css文件被打包到 ipa 或 apk 等原生安装包,在手机客户端运行。

当然这些移动 App 里某些页面也可以继续从服务器端以网页方式下行。

所以 mobile web,在 HBuilder 里新建项目时,属于 web 项目。不要放置到移动 App 项 目下。mobile web 项目也不能真机联调和打包。

举几个例子。

例 1:一个 mobile web 项目,想打包成移动 App。

a)   在 HBuilder 里新建一个 web 项目,把 mobile web 代码放进去。

b)   在 HBuilder 里新建移动 App

c)   在新建的移动 App 下找到 manifest.json,将其中的入口页面配置为 mobileweb 的网 络地址。

d)   然后点发行打包,就得到一个移动 App 的安装包。除了可发行到 Appstore 和桌面 有个快捷方式外,与浏览器的体验不会有其他区别。

e)   另外其实 mobile web 的代码,也可以判断自己运行的环境,如果 UA 里包含 “Html5Plus”,也可以写 plus 对象来调用原生能力。


 

 

 

 

 

 

 

例子 2:正规的移动 App(没有网页进度条)

a)   在 HBuilder 里新建移动 App 项目

b)   在移动 App 里编写 html、Js、css 文件,本地 js通过 ajax 方式请求服务器数据,通过 plus.net 对象避开跨域限制。

c)   移动 App 里的 js 可以通过 plus 对象调用手机原生能力

d)   编写好的移动 App 点打包变成安装包。 例子 3:混合型移动 App

这里的混合型移动 App,所指并非是原生和 HTML5 的 hybridApp,而是指一部分 页面是本地的 HTML,通过 ajax 与服务器交互,另一部分页面是从服务器下行的 mobileweb页面。

a)   分别新建一个 web 项目和一个移动 App 项目

b)   在移动 App 里的某个 html 里通过<a href= 或者 location.href=指定 mobile web的页 面地址。

 

 

 

HTML5+ 应用架构

 

 

 

 

 

 

 

HTML5+ 规范 API

 

 

最新规范请参考 http://www.html5plus.org/#specification

以下提供摘要表格信息。


 

 

 

 

 

 

 

手机端体验各个 API 的实现效果,ios 手机在 Appstore 搜索 Hello H5+,Android 手机下载

http://d.m3w.cn/helloh5p/HelloH5.apk

 

设备和业务能力

 

 

特性

API

功能

Accelerometer

plus.accelerometer.

*

提供设备加速度传感器管理能力,用于获取设备加速度信息。

Audio

plus.audio.*

提供音频的录制和播放能力。

Cache

plus.cache.*

提供应用缓存管理能力。

Camera

plus.camera.*

提供设备的摄像头管理能力,用于拍照、摄像操作。

Console

plus.console.*

提供应用的日志输出,用于调试跟踪。

Contacts

plus.cotacts.*

提供系统联系人操作能力。

Device

plus.device.* plus.screen.* plus.display.*

plus.networkinfo.*

提供手机设备的信息。

Downloader

plus.downloader.*

提供应用文件下载任务管理能力,支持跨域网络访问。

Events

-

提供应用的事件管理能力,如应用前后台切换,网络变化等。

File

plus.io.*

提供文件系统访问能力。

Gallery

plus.gallery.*

提供访问系统相册能力。

Geolocation

plus.geolocation.*

提供系统的 GPS 信息管理能力。

Invocation

plus.ios.*

plus.android.*

提供直接调用系统 Native API 能力。

Messaging

plus.messagin.*

提供设备的通讯能力。

Orientation

plus.orientation.*

提供设备方向感应器管理能力。

Proximity

plus.proximity.*

提供设备距离感应器管理能力。

Storage

plus.storage.*

提供应用本地数据存储能力。

UI

plus.ui.*

提供多窗口管理能力。

Uploader

plus.uploader.*

提供应用文件上传任务管理能力,支持跨域网络访问。

Runtime

plus.runtime.*

提供应用运行环境管理能力。

XMLHttpRequest

plus.net.*

提供网络请求能力,支持跨域网络访问。

Zip

plus.zip.*

提供文件的压缩和解压能力。

 

 

 

第三方插件能力

 

 

特性

API

功能

Barcode

plus.barcode.*

提供二维码扫描能力。

Maps

plus.maps.*

提供原生地图展现能力(百度地图)。

Payment

plus.payment.*

提供第三方支付能力(支付宝)。

Push

plus.push.*

提供消息推送能力(MKey 企业内网专用 push、个推)。


 

 

 

 

 

 

 

Share

plus.share.*

提供第三方分享能力(新浪微博、腾讯微博、微信)。

Speech

plus.speech.*

提供第三语音识别能力(讯飞语音云)。

Statistic

plus.statistic.*

提供第三方统计能力(友盟统计)。

 

 

 

 

 

开发环境 HBuilder

 

 

HBuilder 内置 HTML5+ APP 开发环境,提供一套完整的移动应用开发解决方案。内置HTML5+ API 语法提示,提高开发效率;集成真机运行环境,方便开发后即时在真机上查看 运行效果;集成应用云端打包系统,不用部署 xcode和 Android sdk 就可以打包应用。使开 发者只需要使用 HTML5、CSS、CSS 技术就可以快速开发跨平台的移动应用。

下载地址:http://www.dcloud.net.cn/

 

 

 

 

平台支持

 

 

l      iOS 5.0 及以上

l      Android 2.3 及以上

l      WP 8.0 及以上(开发中)

 

 

 

手把手教你开发 HelloWord

 

 

创建 HelloWord 应用

 

 

l      启动 HBuilder

l      在菜单栏中选择“文件”-> “新建”->“移动 App”,打开“创建移动 App”对话框,在应用名称中输入“HelloWorld”

注意新建移动 App 需要联网分配一个 appid,在真机联调、打包发行时都需要这个 ID, 所以不联网无法创建移动 App。


 

 

 

 

 

 

 

 

l      创建完成后,会在项目管理器中显示新建的“HelloWorld”项目

 

 

 

 

manifest.json

 

 

在项目管理器中双击“manifest.json”文件,打开程序信息配置页面:


 

 

 

 

 

 

 

 

 

 

应用基础信息

 

 

l      应用名称:应用安装到手机上显示的名称;

l      appid:应用标识,用于云平台打包,不可修改;

l      版本号:应用发布的版本号;

l      入口页面:应用启动后默认显示的页面,可以是网络地址;

l      重力感应:应用在手机上开启重力感应时可切换的方向;

 

 

 

平台选择

 

 

平台选择后则可设置对应云平台的应用图标和启动界面,点击图标则可弹出文件选择对话框,按照提示尺寸选择对应分辨率启动图标和启动界面图片:

 


 

 

 

 

 

 

 

编辑完成后,按 Ctrl+S 键保存。

 

 

 

调用 HTML5+ API

 

 

在项目管理器中双击“index.html”文件,对于 HTML5+应用的页面有一个很重要的 “plusready”事件,此事件会在页面加载后自动触发,表示所有 HTML5+ API 可以使用, 在此事件触发之前不能调用 HTML5+ API,所以应该在此事件回调函数中调用页面初始化需 要调用的 HTML5+ API,而不应该在 onload 事件中调用:

 

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<meta         name="viewport"         content="initial-scale=1.0,         maximum-scale=1.0,user-scalable=no"/>

<title>hello world</title>

<script type="text/javascript">

// 扩展 API 加载完毕后触发“plusready"事件

document.addEventListener( "plusready", function() {

var self = plus.ui.getSelfWindow();

// ... code

}, false );

</script>

</head>

<body>

......

</body>

</html>

 

 

 

编辑程序启动后默认显示的页面 index.html,在页面中添加一个按钮,点击后将打开新

页面加载“http://www.baidu.com/”,为了实现此功能,我们需要用到 HTML5+扩展 API 中

plus.ui.createWindow()方法创建窗口:


 

 

 

 

 

 

 

 

编辑完成后,按 Ctrl+S 键保存。

 

 

 

真机运行

 

 

添加调用 HTML5+API 代码后,我们可以通过真机运行来查看效果,在本地编辑的页面保存后可同步在真机上看到保存后的显示效果。

注意只有移动 App 项目才可以真机联调。

 

iOS 真机运行

 

 

在 HBuilder 的“项目管理器”中选择创建的“HelloWorld”应用。

 

启动真机运行

 

 

将 iOS 设备连接到电脑,这时 HBuilder 会自动检测连接到电脑上的设备,通过菜单栏 中的“运行”菜单启动:


 

 

 

 

 

 

 

也可通过工具栏启动:

 

注:如果没有发现设备,则确认设备是否安装 iTunes 程序,是否升级到最新版本?或者尝 试重新连接数据线!

 

 

 

安装真机运行环境

 

 

启动真机运行后,HBuilder 会自动在设备上安装真机运行环境,并在控制台中显示以下信息:

注:如果提示错误信息,请尝试点击“终止”按钮后重新启动真机运行!


 

 

 

 

 

 

 

 

真机运行应用

 

 

在 iOS 设备上可看到新安装的 HBuilder 应用图标,手动点击运行

注意:真机联调 App 时,提供的是一个测试环境,并不真实发生打包,手机端 App 界 面还有 develop 的水印,其手机桌面显示名字为 HBuilder,图标也是 HBuilder 的图标,此时 并不是开发者真实 App 的名字图标。正式的 App 需要通过发行-打包来制作,打包后的 App 名字图标都是开发者定义的,里面也没有 develop 的水印。

 

 

启动后会弹出提示框,选择“确定”,显示以下页面:

 


 

 

 

 

 

 

 

 

Android 真机运行

 

 

将 Android 设备连接到电脑,这时 HBuilder 会自动检测连接到电脑上的设备,通过菜单 栏中的“运行”菜单启动:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

也可通过工具栏启动:

 

 

注:如果没有发现设备,请安装 360 手机助手等手机驱动,保证手机和 PC 可以连接。尝试 重新连接数据线。另外有些数据线质量不好,会无法稳定连接。

 

运行一次后,关闭时务必点停止运行的红色方块按钮,否则下次连接很可能阻塞。

 

 

安装真机运行环境

 

 

启动真机运行后,HBuilder 会自动在设备上安装真机运行环境,并在控制台中显示以下信息:

 

注:如果提示错误信息,请尝试“终止”后重新启动真机运行!


 

 

 

 

 

 

 

 

 

 

 

真机运行应用

 

 

在 Android 设备会自动安装 HBuilder 应用,在桌面上可看到新安装的 HBuilder 应用图 标(有些设备会在应用列表页面中):

注意:真机联调 App 时,提供的是一个测试环境,并不真实发生打包,手机端 App 界 面还有 develop 的水印,其手机桌面显示名字为 HBuilder,图标也是 HBuilder 的图标,此时 并不是开发者真实 App 的名字图标。正式的 App 需要通过发行-打包来制作,打包后的 App 名字图标都是开发者定义的,里面也没有 develop 的水印。

 

启动后会弹出提示框,选择“确定”,显示以下页面:


 

 

 

 

 

 

 

 

 

 

 

 

 

 

部署发布

 

 

完成应用页面的编辑后,需要正式发布到个大市场,这时需要从云平台进行安装包的制

作。通过菜单栏中的“发行”->“App 打包”,打开“App 云端打包”对话框提交。 注意只有移动 App 项目才可以打包。

 

iOS 发布

 

 

对于 iOS 平台,可以选择越狱包或正式包(Appstore 专用),前者只能安装在已越狱的设备上,后者则可通过 iDP 证书打包提交到 Appstore 发布、或通过 iEP 证书打包在企业内 部发布。

 

配置打包信息

 

 

l      越狱包


 

 

 

 

 

 

 

AppID:iOS应用标识,推荐使用反向域名风格的字符串,如“com.domainname.appname”。

 

l      正式包


 

 

 

 

 

 

 

AppID:iOS 应用标识,推荐使用反向域名风格的字符串,如“com.domainname.appname”, 必须与 profile 文件绑定的 App ID 匹配。

私钥证书:iOSCertificates 文件(.p12); 私钥密码:导入私钥证书的密码;

Profile 文件:iOSProvisioning Profile 文件(.mobileprovision),必须与 App ID 和私钥证书 区配;

 

 

 

查看打包状态

 

 

通过菜单栏中的“发行”->“查看打包状态”,打开“查看 App 打包状态”对话框,可 查看打包历史记录和状态:


 

 

 

 

 

 

 

 

如果“制作状态”栏显示“打包成功,下载完成”则表示云端打包完成,可点击“打开 下载目录”查看下载的安装包。

 

 

 

Android 发布

 

 

对于 Android 平台,可以选择使用 DCloud 生成的公用证书或自己生成的证书,两者不 影响安装包的发布,唯一的差别就是证书中开发者和企业信息不同。

 

 

 

生成 Android 签名证书

 

 

(使DCloud 公用证可忽略)确保电上安装JRE,我们使JRE 自带的创 建和管理数字证书的工具 Keytool使用以下命令生成证书:


 

 

 

 

 

 

 

 

 

-keystore helloworld.keystore 生成的书,以加路径(认在户主目

-alias helloworld 表示证书的别名是 helloworld

-keyalg RSA 表示采用的 RSA 算法

-validity 10000 表示证书的有效期是 10000 天。

 

 

 

配置打包信息

 

 

l      使用 DCloud 公用证书


 

 

 

 

 

 

 

App 包 名 : Android  应 用 包 名 , 推 荐 使 用 反 向 域 名 风 格 的 字 符 串 , 如“com.domainname.appname”。

 

l      使用自有证书


 

 

 

 

 

 

 

App 包 名 : Android  应 用 包 名 , 推 荐 使 用 反 向 域 名 风 格 的 字 符 串 , 如“com.domainname.appname”。

证书别名:生成证书时使用-alias 参数设置的证书别名; 私钥密码:生成证书时使用的 keystore 密码;证书文件:生成证书时使用-keystore 参数设置的证书保存路径;

 

 

 

查看打包状态

 

 

通过菜单栏中的“发行”->“查看打包状态”,打开“查看 App 打包状态”对话框,可查看打包历史记录和状态:


 

 

 

 

 

 

 

 

如果“制作状态”栏显示“打包成功,下载完成”则表示云端打包完成,可点击“打开 下载目录”查看下载的安装包。


 

 

 

 

 

 

 

 

 

FAQ

 

 

HTML5+是否提供 UI 框架

 

 

HTML5+本身不包括任何 UI框架,我们推荐使用轻量级 UI框架 Ratchet,其他框架如 Sencha Touch、jQuery Mobile、jQTouch、PhoneJS 等性能略差,在一些低端Android 机上无 法流畅运行。HBuilder 中内置了Ratchet 模板。

l      新建移动 App,在菜单栏中选择“文件”->“新建”->“移动 App”

l      在创建移动 App 对话框中选择“Ratchet”模板:

 

 

 

只能云端打包吗?支持本地打包吗?

 

 

支持本地打包,目前已经有开发者在内测该功能,未来会全面开放。

 

 

js 不能跨域,本地 HTML5 如何与服务器交互?

 

 

使用 plus.net 对象可以跨域


 

 

 

 

 

 

 

 

plus 对象浏览器不支持啊,是不是需要引用什么 js 框架?

 

 

不需要引入 js框架,plus 对象需要系统底层支持而不是单纯的一个 js 框架就能解决问

题。

plus 对象在 DCloud 的 5+runtime 里已经实现。使用 HBuilder 打包时,是把工程里的 html、

js、css 和 DCloud 的 5+runtime 混编打包成 ipa 或 apk 的。

也可以把 5+runtime 理解为 cef,一种没有地址栏的、实现了 plus 对象的增强浏览器内

核。

 

 

plus 规范是开放的吗,我可以自己实现plus runtime 或 在我自己的浏览器里支持 plus 对象吗?

 

plus 规范属于 HTML5Plus.org,是开放规范,任何公司或个人都可以基于 HTML5+规范 开发自己的手机端实现。

 

什么是“响应式应用”:

 

 

一套代码根据不同运行环境调用不同能力来优化用户体验。 比如文本框,在普通浏览器下就是一个文本输入框,在 Chrome 浏览器下运行时加个判

断调 Chrome 的语音输入,而运行在 App 模式下,则再加一个判断调用原生的语音识别 SDK, 比如 plus.speech。

这样一个应用可以根据设备的不同而最大化的优化用户体验,这种模式很有魅力,对用 户而言体验更好,对开发者而言成本更低。

 

iOS 如何安装越狱包

 

 

iOS 设备需要进行越狱操作(威锋网越狱教程)后才能安装越狱包,通常可以使用第三 方工具进行管理,如 iTools():

 

使用 iTools 工具安装

 

 

l      安装 iTools 工具并启动(注:需安装 iTunes工具)

l      将 iOS 手机连接到电脑,这时 iTools 工具会提示发现设备,并确定设备越狱状态为“已 越狱”:


 

 

 

 

 

 

 

 

l      右侧设备下选择“应用程序”,点击“安装”选择越狱包 ipa 文件:

 

l      安装完成后即可在手机上打开运行

 

 

 

iOS 安装越狱包提示“验证失败”错误

 

 

iOS 设备需要进行越狱操作(威锋网越狱教程)后才能安装越狱包,对于 iOS7.x 系统 越狱操作后需要确认是否安装安装 afc2add、AppSync 工具?


 

 

 

 

 

 

 

 

安装 afc2addAppSync 工具

 

 

l      打开 cydia

l      选择“软件源”-> “编辑” -> “添加”,输入 APT 地址:

 

 

 

 

 

 

 

 

 

 

 

 

l      添加源完成后,在搜索页面搜索工具并安装。

 

HBuilder 可以开发 phonegap 应用吗?

 

 

首先 HBuilder 的语法提示库是开放的,基于 xml 语法库文件或 jsdoc 这 2 种方式,可以 制作任意语法提示。

这部分的开源地址是:https://github.com/dcloudio/WebFrameworkGrammar

只要有人制作了 phonegap 语法提示文件,导入到 HBuilder 里就可以提示。

HBuilder 支持 eclipse 插件,开发者完全可开发一个 eclipse 插件装到 HBuilder 上,实现

phonegap 打包等功能。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值