【转载】小程序-解决体验版只能打开调试工具才能加载数据(请求接口)问题

小程序开发完成后生成了体验版权,但数据一直加载不出来,解决方法:

1)打开微信开发者工具,查看是否开启(勾选)了“不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书”。如果开启,关掉(取消勾选)。


2)关掉之后,打开调试器。会出现如下错误提示,这是由于小程序后台没有配置服务器域名(request合法域名)导致的。

3)接下来,我们到小程序后台(mp.weixin.qq.com)进行域名配置:进入后台--左侧菜单打开“开发”--右侧选择“开发设置”--找到“服务器域名”--修改。(注意:配置的地址必须是https的才行)


4)重要!重要!重要!回到微信开发者工具,右上角“详情”--“项目配置”--“域名信息”更新,看到域名信息列表和后台配置的一样,更新成功。

5)此时,小程序服务器域名已经添加成功,数据可以加载出来了。
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于上传文件大小限制,只能分为5部分上传,其余部分请在我的资源中找到,下载后共同解压 内容简介   今天,大多数现代浏览器都已经支持HTML5。学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。   本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新特性构建先进的Web应用,并以大量的示例涵盖全部HTML5 API。此外,还介绍了当今浏览器对HTML5特性的支持情况。 作者简介   Peter Lubbers Kaazing文档培训主管,旧金山HTML5用户组创建人。作为HTML5和WebSocket的狂热爱好者,Peter常常在国际大会上发言,还在全球范围内开展HTML5的技术培训。在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。   Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在Web 2.0博览会、AJAXWorld博览会和Web JavaOne等国际性会议上做讲演。   Frank Salim Kaazing的元老级工程师,曾参与过WebSocket网关和客户端策略项目。他毕业于波莫纳学院计算机专业,除了编程之外,还喜欢阅读、绘画和轮滑。 目录 第1章 HTML5概述 1 1.1 HTML5发展史 1 1.2 关于2022年的那个神话 2 1.3 谁在开发HTML5 3 1.4 新的认识 3 1.4.1 兼容性和存在即合理 3 1.4.2 效率和用户优先 4 1.4.3 化繁为简 4 1.4.4 通用访问 5 1.5 无插件范式 5 1.6 HTML5的新功能 8 1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 浏览器对HTML5 Canvas的支持 25 2.2 使用HTML5 Canvas API 25 2.2.1 检测浏览器支持情况 25 2.2.2 在页面中加入canvas 26 2.2.3 变换 28 2.2.4 路径 30 2.2.5 描边样式 32 2.2.6 填充样式 33 2.2.7 填充矩形区域 34 2.2.8 绘制曲线 35 2.2.9 在canvas中插入图片 36 2.2.10 渐变 37 2.2.11 背景图 39 2.2.12 缩放canvas对象 41 2.2.13 Canvas变换 42 2.2.14 Canvas文本 43 2.2.15 应用阴影 45 2.2.16 像素数据 46 2.2.17 Canvas的安全机制 48 2.3 使用HTML5 Canvas创建应用 48 2.4 小结 52 第3章 音频和视频 53 3.1 HTML5 Audio和Video概述 53 3.1.1 视频容器 53 3.1.2 音频和视频编解码器 54 3.1.3 HTML5 Audio和Video的限制 55 3.1.4 audio元素和video元素的浏览器支持情况 56 3.2 使用HTML5 Audio和Video API 56 3.2.1 浏览器支持性检测 57 3.2.2 理解媒体元素 58 3.2.3 使用audio元素 62 3.2.4 使用video元素 63 3.2.5 进阶功能 68 3.3 小结 70 第4章 Geolocation API 72 4.1 位置信息 72 4.1.1 纬度和经度坐标 73 4.1.2 位置信息从何而来 73 4.1.3 IP地址地理定位数据 74 4.1.4 GPS地理定位数据 74 4.1.5 Wi-Fi地理定位数据 74 4.1.6 手机地理定位数据 75 4.1.7 用户自定义的地理定位数据 75 4.2 HTML5 Geolocation的浏览器支持情况 75 4.3 隐私 76 4.3.1 触发隐私保护机制 77 4.3.2 处理位置信息 78 4.4 使用HTML5 Geolocation API 78 4.4.1 浏览器支持性检查 78 4.4.2 位置请求 79 4.5 使用HTML5 Geolocation构建实时应用 83 4.5.1 编写HTML显示代码 84 4.5.2 处理Geolocation数据 85 4.5.3 最终代码 88 4.6 进阶功能 90 4.6.1 现在的状态是什么 91 4.6.2 在Goolge Map上显示“我在这里” 92 4.7 小结 93 第5章 Communication API 94 5.1 跨文档消息通信 94 5.1.1 理解源安全 96 5.1.2 跨文档消息通信的浏览器支持情况 97 5.1.3 使用postMessage API 97 5.1.4 使用postMessage API创建应用 98 5.2 XMLHttpRequest Level 2 103 5.2.1 跨源XMLHttpRequest 104 5.2.2 进度事件 105 5.2.3 XMLHttpRequest Level 2的浏览器支持情况 106 5.2.4 使用XMLHttpRequest API 106 5.2.5 创建XMLHttpRequest应用 107 5.3 进阶功能 111 5.3.1 结构化的数据 111 5.3.2 Framebusting 111 5.4 小结 112 第6章 WebSockets API 113 6.1 HTML5 WebSockets概述 113 6.1.1 实时和HTTP 113 6.1.2 解读HTML5 WebSockets 115 6.2 HTML5 WebSockets的浏览器支持情况 120 6.3 编写简单的Echo WebSocket服务器 120 6.4 使用HTML5 WebSockets API 126 6.4.1 浏览器支持情况检测 126 6.4.2 API的基本用法 127 6.5 创建HTML5 WebSockets应用程序 130 6.5.1 编写HTML文件 131 6.5.2 添加WebSocket代码 133 6.5.3 添加Geolocation代码 133 6.5.4 合并所有内容 134 6.5.5 最终代码 136 6.6 小结 138 第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新的表单特性和函数 144 7.2.2 表单验证 147 7.2.3 验证反馈 151 7.3 构建HTML5 Forms应用 152 7.4 小结 157 第8章 Web Workers API 158 8.1 HTML5 Web Workers的浏览器支持情况 158 8.2 使用HTML5 Web Workers API 159 8.2.1 浏览器支持性检查 159 8.2.2 创建HTML5 Web Workers 160 8.2.3 多个JavaScript文件的加载与执行 160 8.2.4 与HTML5 Web Workers通信 160 8.3 编写主页 161 8.3.1 处理错误 161 8.3.2 HTML5 Web Workers 162 8.3.3 HTML5 Web Workers的嵌套使用 162 8.3.4 使用定时器 163 8.3.5 示例代码 163 8.4 构建HTML5 Web Workers应用 164 8.4.1 编写blur.js辅助脚本 165 8.4.2 编写blur.html应用页面 166 8.4.3 编写blurWorker.js 167 8.4.4 与Web Worker通信 168 8.4.5 运行程序 169 8.4.6 示例代码 170 8.5 小结 174 第9章 Web Storage API 175 9.1 HTML5 Web Storage概述 175 9.2 HTML5 Web Storage的浏览器支持情况 176 9.3 使用HTML5 Web Storage API 176 9.3.1 检查浏览器的支持性 176 9.3.2 设置和获取数据 178 9.3.3 封堵数据泄漏 179 9.3.4 localStorage与session-Storage 180 9.3.5 Web Storage API的其他特性和函数 180 9.3.6 更新Web Storage后的通信 182 9.3.7 探索Web Storage 183 9.4 构建HTML5 Web Storage应用 184 9.5 浏览器数据库存储展望 195 9.6 进阶功能 197 9.6.1 JSON对象的存储 198 9.6.2 共享窗口 198 9.7 小结 200 第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 204 10.2.5 applicationCache API 205 10.3 使用HTML5离线Web应用构建应用 206 10.3.1 创建记录资源的manifest文件 208 10.3.2 创建构成界面的HTML和CSS 208 10.3.3 创建离线JavaScript 209 10.3.4 检查applicationCache的支持情况 210 10.3.5 为Update按钮添加处理函数 211 10.3.6 添加Geolocation跟踪代码 211 10.3.7 添加Storage功能代码 212 10.3.8 添加离线事件处理程序 212 10.4 小结 213 第11章 HTML5未来展望 214 11.1 HTML5的浏览器支持情况 214 11.2 HTML未来的发展 214 11.2.1 WebGL 215 11.2.2 设备 217 11.2.3 音频数据API 217 11.2.4 视频元素改进 218 11.2.5 触摸屏设备事件 218 11.2.6 P2P网络 220 11.2.7 最终方向 221 11.3 小结 221
微信版本:6.3.30 IOS版本:IOS_10.0.2 微信开发调试工具:v0.10.102800 操作系统:Win7 开发/调试:iPhone6S真机/微信工具预览,PHPstorm编码 使用说明 由于微信安全域名的限制,如果你填了自己的APPID,所有请求都会失败 无APPID的情况下,使用微信登录会存在问题,请使用手机号登录 目前是测试版本,故未接入短信平台,所以手机是收不到验证码的,直接点获取验证码就已经填上了 如需在微信中体验完整功能,请联系文末的邮箱,注明理由和微信号申请体验权限 使用过程遇到的坑丶记录 背景图不生效,改用image或者Base64 执行POST请求异常,将data中的JSON对象格式化为from序列 页面切换的参数接收异常,在onload方法中,默认的参数即使上一页面传过来的Object参数 在使用data-readingItem的时候,微信解析为dataset的时候会转成小写 多页面的时候,在app.json中重复配置,会编译失败 直接使用 this.data.XXX = XXX 赋值的时候,数据是不会同步输出到VM即WXML中的,必须使用其setData方法 循环加载JSON数据集合时,如果其中有项是null,在开发工具中加载正常,但是在手机中浏览时显示空白页,并且调试时没有错误信息,所以需要对可能为null的数据进行判断 PS:由于有预处理,所以没有遇到这个问题 针对swiper控件,设置min-height不生效,必须设置height,同时swiper-item的间隙也有坑,项目中有实践 使用uploadFile-formData传递参数的时候,formData是个三项的JSON,PHP通过$_REQUEST尽然只能接到最后一个参数 PS:怀疑是微信的坑,后来使用的是将其以GET方式提交,才正常接到 在使用for循环的时候,用的是立即执行的闭包函数,但是PHP端接到的三个请求的time竟然是一样的,这直接导致了文件获取的异常, 目前未找到真实原因,是本人对for循环理解太浅?后通过额外加参数解决 微信录制的音频格式为.silk格式,具体可以Google,强大的ffmpeg都没法直接解码,最后使用了GitHub上的一个开源Decoder库, 解码成功转成了MP3,感谢作者,地址:
由于上传文件大小限制,只能分为5部分上传,其余部分请在我的资源中找到,下载后共同解压 内容简介   今天,大多数现代浏览器都已经支持HTML5。学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。   本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新特性构建先进的Web应用,并以大量的示例涵盖全部HTML5 API。此外,还介绍了当今浏览器对HTML5特性的支持情况。 作者简介   Peter Lubbers Kaazing文档培训主管,旧金山HTML5用户组创建人。作为HTML5和WebSocket的狂热爱好者,Peter常常在国际大会上发言,还在全球范围内开展HTML5的技术培训。在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。   Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在Web 2.0博览会、AJAXWorld博览会和Web JavaOne等国际性会议上做讲演。   Frank Salim Kaazing的元老级工程师,曾参与过WebSocket网关和客户端策略项目。他毕业于波莫纳学院计算机专业,除了编程之外,还喜欢阅读、绘画和轮滑。 目录 第1章 HTML5概述 1 1.1 HTML5发展史 1 1.2 关于2022年的那个神话 2 1.3 谁在开发HTML5 3 1.4 新的认识 3 1.4.1 兼容性和存在即合理 3 1.4.2 效率和用户优先 4 1.4.3 化繁为简 4 1.4.4 通用访问 5 1.5 无插件范式 5 1.6 HTML5的新功能 8 1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 浏览器对HTML5 Canvas的支持 25 2.2 使用HTML5 Canvas API 25 2.2.1 检测浏览器支持情况 25 2.2.2 在页面中加入canvas 26 2.2.3 变换 28 2.2.4 路径 30 2.2.5 描边样式 32 2.2.6 填充样式 33 2.2.7 填充矩形区域 34 2.2.8 绘制曲线 35 2.2.9 在canvas中插入图片 36 2.2.10 渐变 37 2.2.11 背景图 39 2.2.12 缩放canvas对象 41 2.2.13 Canvas变换 42 2.2.14 Canvas文本 43 2.2.15 应用阴影 45 2.2.16 像素数据 46 2.2.17 Canvas的安全机制 48 2.3 使用HTML5 Canvas创建应用 48 2.4 小结 52 第3章 音频和视频 53 3.1 HTML5 Audio和Video概述 53 3.1.1 视频容器 53 3.1.2 音频和视频编解码器 54 3.1.3 HTML5 Audio和Video的限制 55 3.1.4 audio元素和video元素的浏览器支持情况 56 3.2 使用HTML5 Audio和Video API 56 3.2.1 浏览器支持性检测 57 3.2.2 理解媒体元素 58 3.2.3 使用audio元素 62 3.2.4 使用video元素 63 3.2.5 进阶功能 68 3.3 小结 70 第4章 Geolocation API 72 4.1 位置信息 72 4.1.1 纬度和经度坐标 73 4.1.2 位置信息从何而来 73 4.1.3 IP地址地理定位数据 74 4.1.4 GPS地理定位数据 74 4.1.5 Wi-Fi地理定位数据 74 4.1.6 手机地理定位数据 75 4.1.7 用户自定义的地理定位数据 75 4.2 HTML5 Geolocation的浏览器支持情况 75 4.3 隐私 76 4.3.1 触发隐私保护机制 77 4.3.2 处理位置信息 78 4.4 使用HTML5 Geolocation API 78 4.4.1 浏览器支持性检查 78 4.4.2 位置请求 79 4.5 使用HTML5 Geolocation构建实时应用 83 4.5.1 编写HTML显示代码 84 4.5.2 处理Geolocation数据 85 4.5.3 最终代码 88 4.6 进阶功能 90 4.6.1 现在的状态是什么 91 4.6.2 在Goolge Map上显示“我在这里” 92 4.7 小结 93 第5章 Communication API 94 5.1 跨文档消息通信 94 5.1.1 理解源安全 96 5.1.2 跨文档消息通信的浏览器支持情况 97 5.1.3 使用postMessage API 97 5.1.4 使用postMessage API创建应用 98 5.2 XMLHttpRequest Level 2 103 5.2.1 跨源XMLHttpRequest 104 5.2.2 进度事件 105 5.2.3 XMLHttpRequest Level 2的浏览器支持情况 106 5.2.4 使用XMLHttpRequest API 106 5.2.5 创建XMLHttpRequest应用 107 5.3 进阶功能 111 5.3.1 结构化的数据 111 5.3.2 Framebusting 111 5.4 小结 112 第6章 WebSockets API 113 6.1 HTML5 WebSockets概述 113 6.1.1 实时和HTTP 113 6.1.2 解读HTML5 WebSockets 115 6.2 HTML5 WebSockets的浏览器支持情况 120 6.3 编写简单的Echo WebSocket服务器 120 6.4 使用HTML5 WebSockets API 126 6.4.1 浏览器支持情况检测 126 6.4.2 API的基本用法 127 6.5 创建HTML5 WebSockets应用程序 130 6.5.1 编写HTML文件 131 6.5.2 添加WebSocket代码 133 6.5.3 添加Geolocation代码 133 6.5.4 合并所有内容 134 6.5.5 最终代码 136 6.6 小结 138 第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新的表单特性和函数 144 7.2.2 表单验证 147 7.2.3 验证反馈 151 7.3 构建HTML5 Forms应用 152 7.4 小结 157 第8章 Web Workers API 158 8.1 HTML5 Web Workers的浏览器支持情况 158 8.2 使用HTML5 Web Workers API 159 8.2.1 浏览器支持性检查 159 8.2.2 创建HTML5 Web Workers 160 8.2.3 多个JavaScript文件的加载与执行 160 8.2.4 与HTML5 Web Workers通信 160 8.3 编写主页 161 8.3.1 处理错误 161 8.3.2 HTML5 Web Workers 162 8.3.3 HTML5 Web Workers的嵌套使用 162 8.3.4 使用定时器 163 8.3.5 示例代码 163 8.4 构建HTML5 Web Workers应用 164 8.4.1 编写blur.js辅助脚本 165 8.4.2 编写blur.html应用页面 166 8.4.3 编写blurWorker.js 167 8.4.4 与Web Worker通信 168 8.4.5 运行程序 169 8.4.6 示例代码 170 8.5 小结 174 第9章 Web Storage API 175 9.1 HTML5 Web Storage概述 175 9.2 HTML5 Web Storage的浏览器支持情况 176 9.3 使用HTML5 Web Storage API 176 9.3.1 检查浏览器的支持性 176 9.3.2 设置和获取数据 178 9.3.3 封堵数据泄漏 179 9.3.4 localStorage与session-Storage 180 9.3.5 Web Storage API的其他特性和函数 180 9.3.6 更新Web Storage后的通信 182 9.3.7 探索Web Storage 183 9.4 构建HTML5 Web Storage应用 184 9.5 浏览器数据库存储展望 195 9.6 进阶功能 197 9.6.1 JSON对象的存储 198 9.6.2 共享窗口 198 9.7 小结 200 第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 204 10.2.5 applicationCache API 205 10.3 使用HTML5离线Web应用构建应用 206 10.3.1 创建记录资源的manifest文件 208 10.3.2 创建构成界面的HTML和CSS 208 10.3.3 创建离线JavaScript 209 10.3.4 检查applicationCache的支持情况 210 10.3.5 为Update按钮添加处理函数 211 10.3.6 添加Geolocation跟踪代码 211 10.3.7 添加Storage功能代码 212 10.3.8 添加离线事件处理程序 212 10.4 小结 213 第11章 HTML5未来展望 214 11.1 HTML5的浏览器支持情况 214 11.2 HTML未来的发展 214 11.2.1 WebGL 215 11.2.2 设备 217 11.2.3 音频数据API 217 11.2.4 视频元素改进 218 11.2.5 触摸屏设备事件 218 11.2.6 P2P网络 220 11.2.7 最终方向 221 11.3 小结 221
第1章 Android计算平台简介  1.1 面向新PC的全新平台  1.2 Android的历史  1.3 Dalvik VM剖析  1.4 理解Android软件栈  1.5 使用Android SDK开发最终用户应用程序  1.5.1 Android模拟器  1.5.2 Android UI  1.5.3 Android基础组件  1.5.4 高级UI概念  1.5.5 Android Service组件  1.5.6 Android媒体和电话组件  1.5.7 Android Java包  1.6 利用Android源代码  1.7 本书的示例项目  1.8 小结  第2章 设置开发环境  2.1 设置环境  2.1.1 下载JDK 6  2.1.2 下载Eclipse 3.6  2.1.3 下载Android SDK  2.1.4 命令行窗口  2.1.5 安装ADT  2.2 了解基本组件  2.2.1 View  2.2.2 Activity  2.2.3 Intent  2.2.4 ContentProvider  2.2.5 Service  2.2.6 AndroidManifest.xml  2.2.7 AVD  2.3 Hello World!  2.4 AVD  2.5 剖析Android应用程序的结构  2.6 分析Notepad应用程序  2.6.1 加载和运行Notepad应用程序  2.6.2 分解应用程序  2.7 了解应用程序生命周期  2.8 调试应用程序  2.8.1 启动模拟器  2.8.2 StrictMode  2.8.3 参考资料  2.9 小结  第3章 使用Android资源  3.1 资源  3.1.1 字符串资源  3.1.2 布局资源  3.1.3 资源引用语法  3.1.4 定义资源ID供以后使用  3.1.5 已编译和未编译的Android资源  3.2 Android关键资源  3.3 使用任意XML资源文件  3.4 使用原始资源  3.5 使用资产  3.6 了解资源目录结构  3.7 资源和配置更改  3.8 参考资料URL  3.9 小结  第4章 ContentProvider  4.1 探索Android内置的ContentProvider  4.2 ContentProvider的架构  4.3 实现ContentProvider  4.4 练习图书提供程序  4.4.1 添加图书  4.4.2 删除图书  4.4.3 获取图书数量  4.4.4 显示图书列表  4.5 资源  4.6 小结  第5章 Intent  5.1 Android Intent基础知识  5.2 Android中可用的Intent  5.3 Intent的组成  5.3.1 Intent和数据URI  5.3.2 一般操作  5.3.3 使用extra信息  5.3.4 使用组件直接调用活动  5.3.5 Intent类别  5.3.6 将Intent解析为组件的规则  5.4 练习使用ACTION_PICK  5.5 练习使用GET_CONTENT操作  5.6 挂起的Intent  5.7 资源  5.8 小结  第6章 构建用户界面和使用控件  6.1 Android中的UI开发  6.1.1 完全利用代码来构建UI  6.1.2 完全使用XML构建UI  6.1.3 使用XML结合代码构建UI  6.2 Android中的常见控件  6.2.1 文本控件  6.2.2 按钮控件  6.2.3 ImageView控件  6.2.4 日期和时间控件  6.2.5 MapView控件  6.3 适配器  6.3.1 SimpleCursorAdapter  6.3.2 了解ArrayAdapter  6.4 结合使用适配器和AdapterView  6.4.1 基本的列表控件:ListView  6.4.2 GridView控件  6.4.3 Spinner控件  6.4.4 Gallery控件  6.4.5 创建自定义适配器  6.4.6 Android中的其他控件  6.5 样式和主题  6.5.1 使用样式  6.5.2 使用主题  6.6 布局管理器  6.6.1 LinearLayout布局管理器  6.6.2 TableLayout布局管理器  6.6.3 RelativeLayout布局管理器  6.6.4 FrameLayout布局管理器  6.6.5 为各种设备配置自定义布局  6.7 使用Hierarchy Viewer调试和优化布局  6.8 参考资料  6.9 小结  第7章 使用菜单  7.1 Android菜单  7.1.1 创建菜单  7.1.2 使用菜单组  7.2 响应菜单项  7.3 创建测试工具来测试菜单  7.4 使用其他菜单类型  7.4.1 展开的菜单  7.4.2 使用图标菜单  7.4.3 使用子菜单  7.4.4 配置系统菜单  7.4.5 使用上下文菜单  7.4.6 使用交替菜单  7.4.7 使用菜单响应数据变化  7.5 通过XML文件加载菜单  7.5.1 XML菜单资源文件的结构  7.5.2 填充XML菜单资源文件  7.5.3 响应基于XML的菜单项  7.5.4 其他XML菜单标记简介  7.6 资源  7.7 小结  第8章 使用对话框  8.1 使用Android中的对话框  8.1.1 设计提醒对话框  8.1.2 设计提示对话框  8.1.3 Android对话框的特性  8.1.4 重新设计提示对话框  8.2 使用托管对话框  8.2.1 理解托管对话框协议  8.2.2 将非托管对话框重新转换为托管对话框  8.2.3 简化托管对话框协议  8.3 使用Toast  8.4 资源  8.5 小结  第9章 管理和组织首选项  9.1 探索首选项框架  9.1.1 ListPreference  9.1.2 CheckBoxPreference  9.1.3 EditTextPreference  9.1.4 RingtonePreference  9.2 组织首选项  9.3 以编程方式操作首选项  9.4 使用首选项保存状态  9.5 参考资料  9.6 小结  第10章 探索安全性和权限  10.1 理解Android安全性模型  10.1.1 安全性概念概述  10.1.2 为部署签名应用程序  10.2 执行运行时安全性检查  10.2.1 进程边界上的安全性  10.2.2 声明和使用权限  10.2.3 理解和使用自定义权限  10.2.4 理解和使用URI权限  10.3 参考资料  10.4 小结  第11章 构建和使用服务  11.1 使用HTTP服务  11.1.1 将HttpClient用于HTTPGET请求  11.1.2 将HttpClient用于HTTPPOST请求(多部分POST请求示例)  11.1.3 SOAP、JSON和XML分析程序  11.1.4 处理异常  11.1.5 解决多线程问题  11.1.6 有趣的超时  11.1.7 使用HttpURLConnection  11.1.8 使用AndroidHttpClient  11.1.9 使用后台线程(AsyncTask)  11.1.10 使用AsyncTask处理配置更改  11.1.11 使用DownloadManager获取文件  11.2 使用Android服务  11.2.1 Android中的服务  11.2.2 本地服务  11.2.3 AIDL服务  11.2.4 在AIDL中定义服务接口  11.2.5 实现AIDL接口  11.2.6 从客户端应用程序调用服务  11.2.7 向服务传递复杂的类型  11.3 使用服务的真实示例  11.3.1 Google翻译API  11.3.2 使用Google翻译API  11.4 参考资料  11.5 小结  第12章 包  12.1 包和进程  12.1.1 包规范的细节  12.1.2 将包名称转换为进程名称  12.1.3 列出安装的包  12.1.4 通过包浏览器删除包  12.2 包签名过程回顾  12.2.1 理解数字签名:场景1  12.2.2 理解数字签名:场景2  12.2.3 一种理解数字签名的模式  12.2.4 数字签名执行方式  12.2.5 签名过程的影响  12.3 在包之间共享数据  12.3.1 共享用户ID的性质  12.3.2 共享数据的代码模式  12.4 库项目  12.4.1 库项目的概念  12.4.2 库项目的性质  12.4.3 创建库项目  12.4.4 创建使用库的Android项目  12.5 参考资料  12.6 小结  第13章 处理程序  13.1 Android组件和线程  13.1.1 活动在主线程上运行  13.1.2 广播接收程序在主线程上运行  13.1.3 服务在主线程上运行  13.1.4 ContentProvider在主线程上运行  13.1.5 单一主线程的影响  13.1.6 线程池、ContentProvider、外部服务组件  13.1.7 线程实用程序:发现线程  13.2 处理程序  13.2.1 持有主线程的影响  13.2.2 使用处理程序延迟主线程上的工作  13.2.3 延迟工作的处理程序源代码示例  13.2.4 构造合适的Message对象  13.2.5 将Message对象发送给队列  13.2.6 响应handleMessage回调  13.3 使用工作线程  13.3.1 从菜单调用工作线程  13.3.2 在工作线程与主线程之间通信  13.3.3 线程行为概述  13.4 处理程序示例驱动程序类  13.4.1 驱动程序活动文件  13.4.2 布局文件  13.4.3 菜单文件  13.4.4 描述文件  13.5 组件和进程寿命  13.5.1 活动生命周期  13.5.2 服务生命周期  13.5.3 接收程序生命周期  13.5.4 提供程序生命周期  13.6 代码编译说明  13.6.1 从ZIP文件创建项目  13.6.2 从代码清单创建项目  13.7 参考资料  13.8 小结  第14章 广播接收程序和长期运行的服务  14.1 广播接收程序  14.1.1 发送广播  14.1.2 编写简单的接收程序:示例代码  14.1.3 在描述文件中注册接收程序  14.1.4 发送测试广播  14.1.5 容纳多个接收程序  14.1.6 进程外接收程序项目  14.2 从接收程序使用通知  14.2.1 通过通知管理器监控通知  14.2.2 发送通知  14.3 长期运行的接收程序和服务  14.3.1 长期运行的广播接收程序协议  14.3.2 IntentService  14.3.3 IntentService源代码  14.4 为广播接收程序扩展IntentService  14.4.1 长期运行的广播服务抽象  14.4.2 长期运行的接收程序  14.4.3 使用LightedGreenRoom抽象唤醒锁  14.5 长期运行的服务的实现  14.5.1 非粘滞性服务的细节  14.5.2 粘滞性服务的细节  14.5.3 非粘滞性的变体:重传送(redeliver)Intent  14.5.4 在onStartCommand中指定服务标志  14.5.5 挑选合适的粘滞性  14.5.6 从两个位置控制唤醒锁  14.5.7 长期运行的服务的实现  14.5.8 测试长期运行的服务  14.6 代码编译说明  14.6.1 从ZIP文件创建项目  14.6.2 通过代码清单创建项目  14.7 参考资料  14.8 小结  第15章 闹钟管理器  15.1 闹钟管理器基本知识:设置一个简单的闹钟  15.1.1 获取闹钟管理器  15.1.2 设置闹钟时间  15.1.3 设置闹钟接收程序  15.1.4 创建适合闹钟的PendingIntent  15.1.5 设置闹钟  15.1.6 测试项目  15.2 探索其他闹钟管理器场景  15.2.1 设置重复闹钟  15.2.2 取消闹钟  15.2.3 使用多个闹钟  15.2.4 Intent在设置闹钟时的首要职责  15.2.5 闹钟的持久化  15.3 闹钟管理器事实  15.4 参考资料  15.5 小结  第16章 2D动画揭秘  16.1 逐帧动画  16.1.1 计划逐帧动画  16.1.2 创建活动  16.1.3 将动画添加到活动  16.2 布局动画  16.2.1 基本的补间动画类型  16.2.2 计划布局动画测试工具  16.2.3 创建活动和ListView  16.2.4 将ListView制作成动画  16.2.5 使用插值器  16.3 视图动画  16.3.1 理解视图动画  16.3.2 添加动画  16.3.3 使用Camera实现2D图像的深度效果  16.3.4 探索AnimationListener类  16.3.5 关于变换矩阵的一些说明  16.4 资源  16.5 小结  第17章 地图和基于位置的服务  17.1 地图包  17.1.1 从Google获取map-api密钥  17.1.2 MapView和MapActivity  17.1.3 使用覆盖图添加标记  17.2 位置包  17.2.1 使用Android进行地理编码  17.2.2 使用后台线程进行地理编码  17.2.3 LocationManager服务  17.2.4 使用MyLocationOverlay显示位置  17.2.5 使用接近提醒  17.3 参考资料  17.4 小结  第18章 电话API  18.1 使用SMS  18.1.1 发送SMS消息  18.1.2 监视传入的SMS消息  18.1.3 使用SMS文件夹  18.1.4 发送电子邮件  18.2 使用电话管理器  18.3 SIP  18.4 参考资料  18.5 小结  第19章 媒体框架  19.1 使用媒体API  19.2 播放媒体  19.2.1 播放音频内容  19.2.2 播放视频内容  19.3 录制媒体  19.3.1 使用MediaRecorder录制音频  19.3.2 使用AudioRecord录制音频  19.3.3 视频录制  19.3.4 MediaStore类  19.3.5 使用Intnet录制音频  19.3.6 将媒体内容添加到媒体存储  19.3.7 为整个SD卡触发MediaScanner  19.3.8 参考资料  19.4 小结  第20章 使用OpenGL进行3D图形编程  20.1 了解OpenGL的历史和背景  20.1.1 OpenGL ES  20.1.2 OpenGL ES与Java ME  20.1.3 M3G:另一种Java ME 3D图形标准  20.2 OpenGL的基本原理  20.2.1 使用OpenGL ES进行基本绘制  20.2.2 OpenGL照相机和坐标  20.3 在Android中使用OpenGL ES  20.3.1 使用GLSurfaceView和相关类  20.3.2 实现Renderer  20.3.3 通过Activity使用GLSurfaceView  20.3.4 更改照相机设置  20.3.5 使用索引添加另一个三角形  20.3.6 为简单的OpenGL三角形制作动画  20.4 OpenGL的运用:形状和纹理  20.4.1 绘制矩形  20.4.2 使用形状  20.4.3 使用纹理  20.4.4 绘制多个图形  20.5 OpenGL ES 2.0  20.5.1 针对OpenGL ES 2.0的Java绑定  20.5.2 呈现步骤  20.5.3 着色器  20.5.4 将着色器编译到程序中  20.5.5 访问着色器程序变量  20.5.6 简单的ES 2.0三角形  20.5.7 关于OpenGL ES 2.0的更多阅读材料  20.6 代码编译说明  20.7 小结  第21章 活动文件夹  21.1 探索活动文件夹  21.1.1 用户如何使用活动文件夹  21.1.2 构建活动文件夹  21.2 代码编译说明  21.3 参考资料  21.4 小结  第22章 主屏幕部件  22.1 主屏幕部件的架构  22.1.1 什么是主屏幕部件  22.1.2 主屏幕部件的用户体验  22.1.3 部件的生命周期  22.2 示例部件应用程序  22.2.1 定义部件提供程序  22.2.2 定义部件尺寸  22.2.3 与部件布局相关的文件  22.2.4 实现部件提供程序  22.2.5 实现部件模型  22.2.6 实现部件配置活动  22.3 部件局限性和扩展  22.4 资源  22.5 小结  第23章 Android搜索  23.1 Android搜索体验  23.1.1 探索Android全局搜索  23.1.2 为全局搜索启用建议提供程序  23.2 活动与搜索键交互  23.2.1 常规活动上的搜索键行为  23.2.2 禁用了搜索的活动的行为  23.2.3 通过菜单显式调用搜索  23.2.4 本地搜索和相关活动  23.2.5 启用键入搜索  23.3 实现简单建议提供程序  23.3.1 计划简单建议提供程序  23.3.2 简单建议提供程序实现文件  23.3.3 实现SimpleSuggestion-Provider类  23.3.4 简单建议提供程序搜索活动  23.3.5 搜索调用方活动  23.3.6 简单建议提供程序用户体验  23.4 实现自定义建议提供程序  23.4.1 计划自定义建议提供程序  23.4.2 SuggestURLProvider项目实现文件  23.4.3 实现SuggestUrlProvider类  23.4.4 实现自定义建议提供程序的搜索活动  23.4.5 自定义建议提供程序描述文件  23.4.6 自定义建议用户体验  23.5 使用操作键和应用程序特有的搜索数据  23.5.1 在Android搜索中使用操作键  23.5.2 使用应用程序特定的搜索上下文  23.6 资源  23.7 对平板电脑的意义  23.8 小结  第24章 文本到语音转换  24.1 Android中的文本到语音转换  24.2 使用语段跟踪语音  24.3 使用音频文件代替话音  24.4 TTS引擎的高级功能  24.4.1 设置音频流  24.4.2 使用耳标  24.4.3 播放静音  24.4.4 选择不同的文本到语音转换引擎  24.4.5 使用语言方法  24.5 参考资料  24.6 小结  第25章 触摸屏  25.1 MotionEvent  25.1.1 MotionEvent 对象  25.1.2 回收MotionEvent  25.1.3 使用VelocityTracker  25.1.4 探索拖放操作  25.2 多点触摸  25.2.1 Android2.2之前的多点触摸  25.2.2 自Android 2.2开始的多点触摸  25.3 触摸地图  25.4 手势  25.4.1 捏合手势  25.4.2 GestureDetector和OnGestureListener  25.4.3 自定义手势  25.4.4 Gestures Builder应用程序  25.5 参考资料  25.6 小结  第26章 传感器  26.1 什么是传感器  26.1.1 检测传感器  26.1.2 可以了解的传感器信息  26.2 获取传感器事件  26.3 解释传感器数据  26.3.1 光线传感器  26.3.2 接近传感器  26.3.3 温度传感器  26.3.4 压力传感器  26.3.5 陀螺仪传感器  26.3.6 加速度计  26.3.7 磁场传感器  26.3.8 结合使用加速度计和磁场传感器  26.3.9 方向传感器  26.3.10 磁偏角和GeomagneticField  26.3.11 重力传感器  26.3.12 直线加速度传感器  26.3.13 旋转矢量传感器  26.3.14 近场通信传感器  26.4 参考资料  26.5 小结  第27章 联系人API  27.1 账户  27.1.1 账户屏幕概览  27.1.2 账户与联系人的相关性  27.1.3 枚举账户  27.2 联系人应用程序  27.2.1 显示联系人  27.2.2 显示联系人详细信息  27.2.3 编辑联系人详细信息  27.2.4 设置联系人的照片  27.2.5 导出联系人  27.2.6 各种联系人数据类型  27.3 联系人  27.3.1 内容SQLite数据库  27.3.2 原始联系人  27.3.3 数据表  27.3.4 聚合联系人  27.3.5 view_contacts  27.3.6 contact_entities_view  27.4 联系人API  27.4.1 浏览账户  27.4.2 浏览聚合联系人  27.4.3 浏览原始联系人  27.4.4 浏览原始联系人数据  27.4.5 添加联系人和它的详细信息  27.5 控制聚合  27.6 同步的影响  27.7 参考资料  27.8 小结  第28章 使用Android Market  28.1 成为发布者  28.1.1 遵守规则  28.1.2 开发人员控制台  28.2 准备销售应用程序  28.2.1 针对不同设备进行测试  28.2.2 支持不同的屏幕尺寸  28.2.3 准备上传AndroidManifest.xml  28.2.4 本地化应用程序  28.2.5 准备应用程序图标  28.2.6 付费应用程序考虑因素  28.2.7 将用户引导至Market  28.2.8 Android授权服务  28.2.9 准备上传.apk文件  28.3 上传应用程序  28.4 Android Market上的用户体验  28.5 更多发布途径  28.6 参考资料  28.7 小结  第29章 多用途的碎片  29.1 什么是碎片  29.1.1 何时使用碎片  29.1.2 碎片的结构  29.1.3 碎片的生命周期  29.1.4 展示生命周期的示例碎片应用程序  29.2 FragmentTransactions和碎片后退栈  29.3 FragmentManager  29.3.1 引用碎片时的注意事项  29.3.2 ListFragments和  29.3.3 在需要时调用独立的活动  29.3.4 碎片的持久化  29.4 对话框碎片  29.4.1 DialogFragment基础知识  29.4.2 DialogFragments示例应用程序  29.5 碎片之间的更多通信方式  29.6 使用ObjectAnimator自定义动画  29.7 参考资料  29.8 小结  第30章 ActionBar  30.1 ActionBar剖析  30.2 选项卡导航操作栏活动  30.2.1 实现基础活动类  30.2.2 为ActionBar分配统一的行为  30.2.3 实现选项卡监听器  30.2.4 实现选项卡操作栏活动  30.2.5 可滚动的调试文本视图布局  30.2.6 操作栏和菜单交互  30.2.7 Android描述文件  30.2.8 测试选项卡操作栏活动  30.3 列表导航操作栏活动  30.3.1 创建SpinnerAdapter  30.3.2 创建列表监听器  30.3.3 设置列表操作栏  30.3.4 更改BaseActionBar-Activity  30.3.5 更改AndroidManifest.xml  30.3.6 测试列表操作栏活动  30.4 标准导航操作栏活动  30.4.1 标准导航操作栏活动  30.4.2 更改BaseActionBar-Activity  30.4.3 更改AndroidManifest.xml  30.4.4 测试标准操作栏活动  30.5 参考资料  30.6 小结  第31章 3.0版中的更多主题  31.1 基于列表的主屏幕部件  31.1.1 3.0版中新的远程视图  31.1.2 在远程视图中使用列表  31.1.3 应用示例:测试主屏幕列表部件  31.1.4 对测试列表部件进行测试  31.2 拖放  31.2.1 3.0版中拖放的基础知识  31.2.2 拖放示例应用程序  31.2.3 测试示例拖放应用程序  31.3 参考资料  31.4 小结
由于上传文件大小限制,只能分为5部分上传,其余部分请在我的资源中找到,下载后共同解压 内容简介   今天,大多数现代浏览器都已经支持HTML5。学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。   本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新特性构建先进的Web应用,并以大量的示例涵盖全部HTML5 API。此外,还介绍了当今浏览器对HTML5特性的支持情况。 作者简介   Peter Lubbers Kaazing文档培训主管,旧金山HTML5用户组创建人。作为HTML5和WebSocket的狂热爱好者,Peter常常在国际大会上发言,还在全球范围内开展HTML5的技术培训。在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。   Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在Web 2.0博览会、AJAXWorld博览会和Web JavaOne等国际性会议上做讲演。   Frank Salim Kaazing的元老级工程师,曾参与过WebSocket网关和客户端策略项目。他毕业于波莫纳学院计算机专业,除了编程之外,还喜欢阅读、绘画和轮滑。 目录 第1章 HTML5概述 1 1.1 HTML5发展史 1 1.2 关于2022年的那个神话 2 1.3 谁在开发HTML5 3 1.4 新的认识 3 1.4.1 兼容性和存在即合理 3 1.4.2 效率和用户优先 4 1.4.3 化繁为简 4 1.4.4 通用访问 5 1.5 无插件范式 5 1.6 HTML5的新功能 8 1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 浏览器对HTML5 Canvas的支持 25 2.2 使用HTML5 Canvas API 25 2.2.1 检测浏览器支持情况 25 2.2.2 在页面中加入canvas 26 2.2.3 变换 28 2.2.4 路径 30 2.2.5 描边样式 32 2.2.6 填充样式 33 2.2.7 填充矩形区域 34 2.2.8 绘制曲线 35 2.2.9 在canvas中插入图片 36 2.2.10 渐变 37 2.2.11 背景图 39 2.2.12 缩放canvas对象 41 2.2.13 Canvas变换 42 2.2.14 Canvas文本 43 2.2.15 应用阴影 45 2.2.16 像素数据 46 2.2.17 Canvas的安全机制 48 2.3 使用HTML5 Canvas创建应用 48 2.4 小结 52 第3章 音频和视频 53 3.1 HTML5 Audio和Video概述 53 3.1.1 视频容器 53 3.1.2 音频和视频编解码器 54 3.1.3 HTML5 Audio和Video的限制 55 3.1.4 audio元素和video元素的浏览器支持情况 56 3.2 使用HTML5 Audio和Video API 56 3.2.1 浏览器支持性检测 57 3.2.2 理解媒体元素 58 3.2.3 使用audio元素 62 3.2.4 使用video元素 63 3.2.5 进阶功能 68 3.3 小结 70 第4章 Geolocation API 72 4.1 位置信息 72 4.1.1 纬度和经度坐标 73 4.1.2 位置信息从何而来 73 4.1.3 IP地址地理定位数据 74 4.1.4 GPS地理定位数据 74 4.1.5 Wi-Fi地理定位数据 74 4.1.6 手机地理定位数据 75 4.1.7 用户自定义的地理定位数据 75 4.2 HTML5 Geolocation的浏览器支持情况 75 4.3 隐私 76 4.3.1 触发隐私保护机制 77 4.3.2 处理位置信息 78 4.4 使用HTML5 Geolocation API 78 4.4.1 浏览器支持性检查 78 4.4.2 位置请求 79 4.5 使用HTML5 Geolocation构建实时应用 83 4.5.1 编写HTML显示代码 84 4.5.2 处理Geolocation数据 85 4.5.3 最终代码 88 4.6 进阶功能 90 4.6.1 现在的状态是什么 91 4.6.2 在Goolge Map上显示“我在这里” 92 4.7 小结 93 第5章 Communication API 94 5.1 跨文档消息通信 94 5.1.1 理解源安全 96 5.1.2 跨文档消息通信的浏览器支持情况 97 5.1.3 使用postMessage API 97 5.1.4 使用postMessage API创建应用 98 5.2 XMLHttpRequest Level 2 103 5.2.1 跨源XMLHttpRequest 104 5.2.2 进度事件 105 5.2.3 XMLHttpRequest Level 2的浏览器支持情况 106 5.2.4 使用XMLHttpRequest API 106 5.2.5 创建XMLHttpRequest应用 107 5.3 进阶功能 111 5.3.1 结构化的数据 111 5.3.2 Framebusting 111 5.4 小结 112 第6章 WebSockets API 113 6.1 HTML5 WebSockets概述 113 6.1.1 实时和HTTP 113 6.1.2 解读HTML5 WebSockets 115 6.2 HTML5 WebSockets的浏览器支持情况 120 6.3 编写简单的Echo WebSocket服务器 120 6.4 使用HTML5 WebSockets API 126 6.4.1 浏览器支持情况检测 126 6.4.2 API的基本用法 127 6.5 创建HTML5 WebSockets应用程序 130 6.5.1 编写HTML文件 131 6.5.2 添加WebSocket代码 133 6.5.3 添加Geolocation代码 133 6.5.4 合并所有内容 134 6.5.5 最终代码 136 6.6 小结 138 第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新的表单特性和函数 144 7.2.2 表单验证 147 7.2.3 验证反馈 151 7.3 构建HTML5 Forms应用 152 7.4 小结 157 第8章 Web Workers API 158 8.1 HTML5 Web Workers的浏览器支持情况 158 8.2 使用HTML5 Web Workers API 159 8.2.1 浏览器支持性检查 159 8.2.2 创建HTML5 Web Workers 160 8.2.3 多个JavaScript文件的加载与执行 160 8.2.4 与HTML5 Web Workers通信 160 8.3 编写主页 161 8.3.1 处理错误 161 8.3.2 HTML5 Web Workers 162 8.3.3 HTML5 Web Workers的嵌套使用 162 8.3.4 使用定时器 163 8.3.5 示例代码 163 8.4 构建HTML5 Web Workers应用 164 8.4.1 编写blur.js辅助脚本 165 8.4.2 编写blur.html应用页面 166 8.4.3 编写blurWorker.js 167 8.4.4 与Web Worker通信 168 8.4.5 运行程序 169 8.4.6 示例代码 170 8.5 小结 174 第9章 Web Storage API 175 9.1 HTML5 Web Storage概述 175 9.2 HTML5 Web Storage的浏览器支持情况 176 9.3 使用HTML5 Web Storage API 176 9.3.1 检查浏览器的支持性 176 9.3.2 设置和获取数据 178 9.3.3 封堵数据泄漏 179 9.3.4 localStorage与session-Storage 180 9.3.5 Web Storage API的其他特性和函数 180 9.3.6 更新Web Storage后的通信 182 9.3.7 探索Web Storage 183 9.4 构建HTML5 Web Storage应用 184 9.5 浏览器数据库存储展望 195 9.6 进阶功能 197 9.6.1 JSON对象的存储 198 9.6.2 共享窗口 198 9.7 小结 200 第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 204 10.2.5 applicationCache API 205 10.3 使用HTML5离线Web应用构建应用 206 10.3.1 创建记录资源的manifest文件 208 10.3.2 创建构成界面的HTML和CSS 208 10.3.3 创建离线JavaScript 209 10.3.4 检查applicationCache的支持情况 210 10.3.5 为Update按钮添加处理函数 211 10.3.6 添加Geolocation跟踪代码 211 10.3.7 添加Storage功能代码 212 10.3.8 添加离线事件处理程序 212 10.4 小结 213 第11章 HTML5未来展望 214 11.1 HTML5的浏览器支持情况 214 11.2 HTML未来的发展 214 11.2.1 WebGL 215 11.2.2 设备 217 11.2.3 音频数据API 217 11.2.4 视频元素改进 218 11.2.5 触摸屏设备事件 218 11.2.6 P2P网络 220 11.2.7 最终方向 221 11.3 小结 221
目录 第1章 Android计算平台简介  1.1 面向新PC的全新平台  1.2 Android的历史  1.3 Dalvik VM剖析  1.4 理解Android软件栈  1.5 使用Android SDK开发最终用户应用程序  1.5.1 Android模拟器  1.5.2 Android UI  1.5.3 Android基础组件  1.5.4 高级UI概念  1.5.5 Android Service组件  1.5.6 Android媒体和电话组件  1.5.7 Android Java包  1.6 利用Android源代码  1.7 本书的示例项目  1.8 小结  第2章 设置开发环境  2.1 设置环境  2.1.1 下载JDK 6  2.1.2 下载Eclipse 3.6  2.1.3 下载Android SDK  2.1.4 命令行窗口  2.1.5 安装ADT  2.2 了解基本组件  2.2.1 View  2.2.2 Activity  2.2.3 Intent  2.2.4 ContentProvider  2.2.5 Service  2.2.6 AndroidManifest.xml  2.2.7 AVD  2.3 Hello World!  2.4 AVD  2.5 剖析Android应用程序的结构  2.6 分析Notepad应用程序  2.6.1 加载和运行Notepad应用程序  2.6.2 分解应用程序  2.7 了解应用程序生命周期  2.8 调试应用程序  2.8.1 启动模拟器  2.8.2 StrictMode  2.8.3 参考资料  2.9 小结  第3章 使用Android资源  3.1 资源  3.1.1 字符串资源  3.1.2 布局资源  3.1.3 资源引用语法  3.1.4 定义资源ID供以后使用  3.1.5 已编译和未编译的Android资源  3.2 Android关键资源  3.3 使用任意XML资源文件  3.4 使用原始资源  3.5 使用资产  3.6 了解资源目录结构  3.7 资源和配置更改  3.8 参考资料URL  3.9 小结  第4章 ContentProvider  4.1 探索Android内置的ContentProvider  4.2 ContentProvider的架构  4.3 实现ContentProvider  4.4 练习图书提供程序  4.4.1 添加图书  4.4.2 删除图书  4.4.3 获取图书数量  4.4.4 显示图书列表  4.5 资源  4.6 小结  第5章 Intent  5.1 Android Intent基础知识  5.2 Android中可用的Intent  5.3 Intent的组成  5.3.1 Intent和数据URI  5.3.2 一般操作  5.3.3 使用extra信息  5.3.4 使用组件直接调用活动  5.3.5 Intent类别  5.3.6 将Intent解析为组件的规则  5.4 练习使用ACTION_PICK  5.5 练习使用GET_CONTENT操作  5.6 挂起的Intent  5.7 资源  5.8 小结  第6章 构建用户界面和使用控件  6.1 Android中的UI开发  6.1.1 完全利用代码来构建UI  6.1.2 完全使用XML构建UI  6.1.3 使用XML结合代码构建UI  6.2 Android中的常见控件  6.2.1 文本控件  6.2.2 按钮控件  6.2.3 ImageView控件  6.2.4 日期和时间控件  6.2.5 MapView控件  6.3 适配器  6.3.1 SimpleCursorAdapter  6.3.2 了解ArrayAdapter  6.4 结合使用适配器和AdapterView  6.4.1 基本的列表控件:ListView  6.4.2 GridView控件  6.4.3 Spinner控件  6.4.4 Gallery控件  6.4.5 创建自定义适配器  6.4.6 Android中的其他控件  6.5 样式和主题  6.5.1 使用样式  6.5.2 使用主题  6.6 布局管理器  6.6.1 LinearLayout布局管理器  6.6.2 TableLayout布局管理器  6.6.3 RelativeLayout布局管理器  6.6.4 FrameLayout布局管理器  6.6.5 为各种设备配置自定义布局  6.7 使用Hierarchy Viewer调试和优化布局  6.8 参考资料  6.9 小结  第7章 使用菜单  7.1 Android菜单  7.1.1 创建菜单  7.1.2 使用菜单组  7.2 响应菜单项  7.3 创建测试工具来测试菜单  7.4 使用其他菜单类型  7.4.1 展开的菜单  7.4.2 使用图标菜单  7.4.3 使用子菜单  7.4.4 配置系统菜单  7.4.5 使用上下文菜单  7.4.6 使用交替菜单  7.4.7 使用菜单响应数据变化  7.5 通过XML文件加载菜单  7.5.1 XML菜单资源文件的结构  7.5.2 填充XML菜单资源文件  7.5.3 响应基于XML的菜单项  7.5.4 其他XML菜单标记简介  7.6 资源  7.7 小结  第8章 使用对话框  8.1 使用Android中的对话框  8.1.1 设计提醒对话框  8.1.2 设计提示对话框  8.1.3 Android对话框的特性  8.1.4 重新设计提示对话框  8.2 使用托管对话框  8.2.1 理解托管对话框协议  8.2.2 将非托管对话框重新转换为托管对话框  8.2.3 简化托管对话框协议  8.3 使用Toast  8.4 资源  8.5 小结  第9章 管理和组织首选项  9.1 探索首选项框架  9.1.1 ListPreference  9.1.2 CheckBoxPreference  9.1.3 EditTextPreference  9.1.4 RingtonePreference  9.2 组织首选项  9.3 以编程方式操作首选项  9.4 使用首选项保存状态  9.5 参考资料  9.6 小结  第10章 探索安全性和权限  10.1 理解Android安全性模型  10.1.1 安全性概念概述  10.1.2 为部署签名应用程序  10.2 执行运行时安全性检查  10.2.1 进程边界上的安全性  10.2.2 声明和使用权限  10.2.3 理解和使用自定义权限  10.2.4 理解和使用URI权限  10.3 参考资料  10.4 小结  第11章 构建和使用服务  11.1 使用HTTP服务  11.1.1 将HttpClient用于HTTPGET请求  11.1.2 将HttpClient用于HTTPPOST请求(多部分POST请求示例)  11.1.3 SOAP、JSON和XML分析程序  11.1.4 处理异常  11.1.5 解决多线程问题  11.1.6 有趣的超时  11.1.7 使用HttpURLConnection  11.1.8 使用AndroidHttpClient  11.1.9 使用后台线程(AsyncTask)  11.1.10 使用AsyncTask处理配置更改  11.1.11 使用DownloadManager获取文件  11.2 使用Android服务  11.2.1 Android中的服务  11.2.2 本地服务  11.2.3 AIDL服务  11.2.4 在AIDL中定义服务接口  11.2.5 实现AIDL接口  11.2.6 从客户端应用程序调用服务  11.2.7 向服务传递复杂的类型  11.3 使用服务的真实示例  11.3.1 Google翻译API  11.3.2 使用Google翻译API  11.4 参考资料  11.5 小结  第12章 包  12.1 包和进程  12.1.1 包规范的细节  12.1.2 将包名称转换为进程名称  12.1.3 列出安装的包  12.1.4 通过包浏览器删除包  12.2 包签名过程回顾  12.2.1 理解数字签名:场景1  12.2.2 理解数字签名:场景2  12.2.3 一种理解数字签名的模式  12.2.4 数字签名执行方式  12.2.5 签名过程的影响  12.3 在包之间共享数据  12.3.1 共享用户ID的性质  12.3.2 共享数据的代码模式  12.4 库项目  12.4.1 库项目的概念  12.4.2 库项目的性质  12.4.3 创建库项目  12.4.4 创建使用库的Android项目  12.5 参考资料  12.6 小结  第13章 处理程序  13.1 Android组件和线程  13.1.1 活动在主线程上运行  13.1.2 广播接收程序在主线程上运行  13.1.3 服务在主线程上运行  13.1.4 ContentProvider在主线程上运行  13.1.5 单一主线程的影响  13.1.6 线程池、ContentProvider、外部服务组件  13.1.7 线程实用程序:发现线程  13.2 处理程序  13.2.1 持有主线程的影响  13.2.2 使用处理程序延迟主线程上的工作  13.2.3 延迟工作的处理程序源代码示例  13.2.4 构造合适的Message对象  13.2.5 将Message对象发送给队列  13.2.6 响应handleMessage回调  13.3 使用工作线程  13.3.1 从菜单调用工作线程  13.3.2 在工作线程与主线程之间通信  13.3.3 线程行为概述  13.4 处理程序示例驱动程序类  13.4.1 驱动程序活动文件  13.4.2 布局文件  13.4.3 菜单文件  13.4.4 描述文件  13.5 组件和进程寿命  13.5.1 活动生命周期  13.5.2 服务生命周期  13.5.3 接收程序生命周期  13.5.4 提供程序生命周期  13.6 代码编译说明  13.6.1 从ZIP文件创建项目  13.6.2 从代码清单创建项目  13.7 参考资料  13.8 小结  第14章 广播接收程序和长期运行的服务  14.1 广播接收程序  14.1.1 发送广播  14.1.2 编写简单的接收程序:示例代码  14.1.3 在描述文件中注册接收程序  14.1.4 发送测试广播  14.1.5 容纳多个接收程序  14.1.6 进程外接收程序项目  14.2 从接收程序使用通知  14.2.1 通过通知管理器监控通知  14.2.2 发送通知  14.3 长期运行的接收程序和服务  14.3.1 长期运行的广播接收程序协议  14.3.2 IntentService  14.3.3 IntentService源代码  14.4 为广播接收程序扩展IntentService  14.4.1 长期运行的广播服务抽象  14.4.2 长期运行的接收程序  14.4.3 使用LightedGreenRoom抽象唤醒锁  14.5 长期运行的服务的实现  14.5.1 非粘滞性服务的细节  14.5.2 粘滞性服务的细节  14.5.3 非粘滞性的变体:重传送(redeliver)Intent  14.5.4 在onStartCommand中指定服务标志  14.5.5 挑选合适的粘滞性  14.5.6 从两个位置控制唤醒锁  14.5.7 长期运行的服务的实现  14.5.8 测试长期运行的服务  14.6 代码编译说明  14.6.1 从ZIP文件创建项目  14.6.2 通过代码清单创建项目  14.7 参考资料  14.8 小结  第15章 闹钟管理器  15.1 闹钟管理器基本知识:设置一个简单的闹钟  15.1.1 获取闹钟管理器  15.1.2 设置闹钟时间  15.1.3 设置闹钟接收程序  15.1.4 创建适合闹钟的PendingIntent  15.1.5 设置闹钟  15.1.6 测试项目  15.2 探索其他闹钟管理器场景  15.2.1 设置重复闹钟  15.2.2 取消闹钟  15.2.3 使用多个闹钟  15.2.4 Intent在设置闹钟时的首要职责  15.2.5 闹钟的持久化  15.3 闹钟管理器事实  15.4 参考资料  15.5 小结  第16章 2D动画揭秘  16.1 逐帧动画  16.1.1 计划逐帧动画  16.1.2 创建活动  16.1.3 将动画添加到活动  16.2 布局动画  16.2.1 基本的补间动画类型  16.2.2 计划布局动画测试工具  16.2.3 创建活动和ListView  16.2.4 将ListView制作成动画  16.2.5 使用插值器  16.3 视图动画  16.3.1 理解视图动画  16.3.2 添加动画  16.3.3 使用Camera实现2D图像的深度效果  16.3.4 探索AnimationListener类  16.3.5 关于变换矩阵的一些说明  16.4 资源  16.5 小结  第17章 地图和基于位置的服务  17.1 地图包  17.1.1 从Google获取map-api密钥  17.1.2 MapView和MapActivity  17.1.3 使用覆盖图添加标记  17.2 位置包  17.2.1 使用Android进行地理编码  17.2.2 使用后台线程进行地理编码  17.2.3 LocationManager服务  17.2.4 使用MyLocationOverlay显示位置  17.2.5 使用接近提醒  17.3 参考资料  17.4 小结  第18章 电话API  18.1 使用SMS  18.1.1 发送SMS消息  18.1.2 监视传入的SMS消息  18.1.3 使用SMS文件夹  18.1.4 发送电子邮件  18.2 使用电话管理器  18.3 SIP  18.4 参考资料  18.5 小结  第19章 媒体框架  19.1 使用媒体API  19.2 播放媒体  19.2.1 播放音频内容  19.2.2 播放视频内容  19.3 录制媒体  19.3.1 使用MediaRecorder录制音频  19.3.2 使用AudioRecord录制音频  19.3.3 视频录制  19.3.4 MediaStore类  19.3.5 使用Intnet录制音频  19.3.6 将媒体内容添加到媒体存储  19.3.7 为整个SD卡触发MediaScanner  19.3.8 参考资料  19.4 小结  第20章 使用OpenGL进行3D图形编程  20.1 了解OpenGL的历史和背景  20.1.1 OpenGL ES  20.1.2 OpenGL ES与Java ME  20.1.3 M3G:另一种Java ME 3D图形标准  20.2 OpenGL的基本原理  20.2.1 使用OpenGL ES进行基本绘制  20.2.2 OpenGL照相机和坐标  20.3 在Android中使用OpenGL ES  20.3.1 使用GLSurfaceView和相关类  20.3.2 实现Renderer  20.3.3 通过Activity使用GLSurfaceView  20.3.4 更改照相机设置  20.3.5 使用索引添加另一个三角形  20.3.6 为简单的OpenGL三角形制作动画  20.4 OpenGL的运用:形状和纹理  20.4.1 绘制矩形  20.4.2 使用形状  20.4.3 使用纹理  20.4.4 绘制多个图形  20.5 OpenGL ES 2.0  20.5.1 针对OpenGL ES 2.0的Java绑定  20.5.2 呈现步骤  20.5.3 着色器  20.5.4 将着色器编译到程序中  20.5.5 访问着色器程序变量  20.5.6 简单的ES 2.0三角形  20.5.7 关于OpenGL ES 2.0的更多阅读材料  20.6 代码编译说明  20.7 小结  第21章 活动文件夹  21.1 探索活动文件夹  21.1.1 用户如何使用活动文件夹  21.1.2 构建活动文件夹  21.2 代码编译说明  21.3 参考资料  21.4 小结  第22章 主屏幕部件  22.1 主屏幕部件的架构  22.1.1 什么是主屏幕部件  22.1.2 主屏幕部件的用户体验  22.1.3 部件的生命周期  22.2 示例部件应用程序  22.2.1 定义部件提供程序  22.2.2 定义部件尺寸  22.2.3 与部件布局相关的文件  22.2.4 实现部件提供程序  22.2.5 实现部件模型  22.2.6 实现部件配置活动  22.3 部件局限性和扩展  22.4 资源  22.5 小结  第23章 Android搜索  23.1 Android搜索体验  23.1.1 探索Android全局搜索  23.1.2 为全局搜索启用建议提供程序  23.2 活动与搜索键交互  23.2.1 常规活动上的搜索键行为  23.2.2 禁用了搜索的活动的行为  23.2.3 通过菜单显式调用搜索  23.2.4 本地搜索和相关活动  23.2.5 启用键入搜索  23.3 实现简单建议提供程序  23.3.1 计划简单建议提供程序  23.3.2 简单建议提供程序实现文件  23.3.3 实现SimpleSuggestion-Provider类  23.3.4 简单建议提供程序搜索活动  23.3.5 搜索调用方活动  23.3.6 简单建议提供程序用户体验  23.4 实现自定义建议提供程序  23.4.1 计划自定义建议提供程序  23.4.2 SuggestURLProvider项目实现文件  23.4.3 实现SuggestUrlProvider类  23.4.4 实现自定义建议提供程序的搜索活动  23.4.5 自定义建议提供程序描述文件  23.4.6 自定义建议用户体验  23.5 使用操作键和应用程序特有的搜索数据  23.5.1 在Android搜索中使用操作键  23.5.2 使用应用程序特定的搜索上下文  23.6 资源  23.7 对平板电脑的意义  23.8 小结  第24章 文本到语音转换  24.1 Android中的文本到语音转换  24.2 使用语段跟踪语音  24.3 使用音频文件代替话音  24.4 TTS引擎的高级功能  24.4.1 设置音频流  24.4.2 使用耳标  24.4.3 播放静音  24.4.4 选择不同的文本到语音转换引擎  24.4.5 使用语言方法  24.5 参考资料  24.6 小结  第25章 触摸屏  25.1 MotionEvent  25.1.1 MotionEvent 对象  25.1.2 回收MotionEvent  25.1.3 使用VelocityTracker  25.1.4 探索拖放操作  25.2 多点触摸  25.2.1 Android2.2之前的多点触摸  25.2.2 自Android 2.2开始的多点触摸  25.3 触摸地图  25.4 手势  25.4.1 捏合手势  25.4.2 GestureDetector和OnGestureListener  25.4.3 自定义手势  25.4.4 Gestures Builder应用程序  25.5 参考资料  25.6 小结  第26章 传感器  26.1 什么是传感器  26.1.1 检测传感器  26.1.2 可以了解的传感器信息  26.2 获取传感器事件  26.3 解释传感器数据  26.3.1 光线传感器  26.3.2 接近传感器  26.3.3 温度传感器  26.3.4 压力传感器  26.3.5 陀螺仪传感器  26.3.6 加速度计  26.3.7 磁场传感器  26.3.8 结合使用加速度计和磁场传感器  26.3.9 方向传感器  26.3.10 磁偏角和GeomagneticField  26.3.11 重力传感器  26.3.12 直线加速度传感器  26.3.13 旋转矢量传感器  26.3.14 近场通信传感器  26.4 参考资料  26.5 小结  第27章 联系人API  27.1 账户  27.1.1 账户屏幕概览  27.1.2 账户与联系人的相关性  27.1.3 枚举账户  27.2 联系人应用程序  27.2.1 显示联系人  27.2.2 显示联系人详细信息  27.2.3 编辑联系人详细信息  27.2.4 设置联系人的照片  27.2.5 导出联系人  27.2.6 各种联系人数据类型  27.3 联系人  27.3.1 内容SQLite数据库  27.3.2 原始联系人  27.3.3 数据表  27.3.4 聚合联系人  27.3.5 view_contacts  27.3.6 contact_entities_view  27.4 联系人API  27.4.1 浏览账户  27.4.2 浏览聚合联系人  27.4.3 浏览原始联系人  27.4.4 浏览原始联系人数据  27.4.5 添加联系人和它的详细信息  27.5 控制聚合  27.6 同步的影响  27.7 参考资料  27.8 小结  第28章 使用Android Market  28.1 成为发布者  28.1.1 遵守规则  28.1.2 开发人员控制台  28.2 准备销售应用程序  28.2.1 针对不同设备进行测试  28.2.2 支持不同的屏幕尺寸  28.2.3 准备上传AndroidManifest.xml  28.2.4 本地化应用程序  28.2.5 准备应用程序图标  28.2.6 付费应用程序考虑因素  28.2.7 将用户引导至Market  28.2.8 Android授权服务  28.2.9 准备上传.apk文件  28.3 上传应用程序  28.4 Android Market上的用户体验  28.5 更多发布途径  28.6 参考资料  28.7 小结  第29章 多用途的碎片  29.1 什么是碎片  29.1.1 何时使用碎片  29.1.2 碎片的结构  29.1.3 碎片的生命周期  29.1.4 展示生命周期的示例碎片应用程序  29.2 FragmentTransactions和碎片后退栈  29.3 FragmentManager  29.3.1 引用碎片时的注意事项  29.3.2 ListFragments和  29.3.3 在需要时调用独立的活动  29.3.4 碎片的持久化  29.4 对话框碎片  29.4.1 DialogFragment基础知识  29.4.2 DialogFragments示例应用程序  29.5 碎片之间的更多通信方式  29.6 使用ObjectAnimator自定义动画  29.7 参考资料  29.8 小结  第30章 ActionBar  30.1 ActionBar剖析  30.2 选项卡导航操作栏活动  30.2.1 实现基础活动类  30.2.2 为ActionBar分配统一的行为  30.2.3 实现选项卡监听器  30.2.4 实现选项卡操作栏活动  30.2.5 可滚动的调试文本视图布局  30.2.6 操作栏和菜单交互  30.2.7 Android描述文件  30.2.8 测试选项卡操作栏活动  30.3 列表导航操作栏活动  30.3.1 创建SpinnerAdapter  30.3.2 创建列表监听器  30.3.3 设置列表操作栏  30.3.4 更改BaseActionBar-Activity  30.3.5 更改AndroidManifest.xml  30.3.6 测试列表操作栏活动  30.4 标准导航操作栏活动  30.4.1 标准导航操作栏活动  30.4.2 更改BaseActionBar-Activity  30.4.3 更改AndroidManifest.xml  30.4.4 测试标准操作栏活动  30.5 参考资料  30.6 小结  第31章 3.0版中的更多主题  31.1 基于列表的主屏幕部件  31.1.1 3.0版中新的远程视图  31.1.2 在远程视图中使用列表  31.1.3 应用示例:测试主屏幕列表部件  31.1.4 对测试列表部件进行测试  31.2 拖放  31.2.1 3.0版中拖放的基础知识  31.2.2 拖放示例应用程序  31.2.3 测试示例拖放应用程序  31.3 参考资料  31.4 小结 
由于上传文件大小限制,只能分为5部分上传,其余部分请在我的资源中找到,下载后共同解压 内容简介   今天,大多数现代浏览器都已经支持HTML5。学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。   本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新特性构建先进的Web应用,并以大量的示例涵盖全部HTML5 API。此外,还介绍了当今浏览器对HTML5特性的支持情况。 作者简介   Peter Lubbers Kaazing文档培训主管,旧金山HTML5用户组创建人。作为HTML5和WebSocket的狂热爱好者,Peter常常在国际大会上发言,还在全球范围内开展HTML5的技术培训。在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。   Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在Web 2.0博览会、AJAXWorld博览会和Web JavaOne等国际性会议上做讲演。   Frank Salim Kaazing的元老级工程师,曾参与过WebSocket网关和客户端策略项目。他毕业于波莫纳学院计算机专业,除了编程之外,还喜欢阅读、绘画和轮滑。 目录 第1章 HTML5概述 1 1.1 HTML5发展史 1 1.2 关于2022年的那个神话 2 1.3 谁在开发HTML5 3 1.4 新的认识 3 1.4.1 兼容性和存在即合理 3 1.4.2 效率和用户优先 4 1.4.3 化繁为简 4 1.4.4 通用访问 5 1.5 无插件范式 5 1.6 HTML5的新功能 8 1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 替代内容 24 2.1.6 CSS和canvas 24 2.1.7 浏览器对HTML5 Canvas的支持 25 2.2 使用HTML5 Canvas API 25 2.2.1 检测浏览器支持情况 25 2.2.2 在页面中加入canvas 26 2.2.3 变换 28 2.2.4 路径 30 2.2.5 描边样式 32 2.2.6 填充样式 33 2.2.7 填充矩形区域 34 2.2.8 绘制曲线 35 2.2.9 在canvas中插入图片 36 2.2.10 渐变 37 2.2.11 背景图 39 2.2.12 缩放canvas对象 41 2.2.13 Canvas变换 42 2.2.14 Canvas文本 43 2.2.15 应用阴影 45 2.2.16 像素数据 46 2.2.17 Canvas的安全机制 48 2.3 使用HTML5 Canvas创建应用 48 2.4 小结 52 第3章 音频和视频 53 3.1 HTML5 Audio和Video概述 53 3.1.1 视频容器 53 3.1.2 音频和视频编解码器 54 3.1.3 HTML5 Audio和Video的限制 55 3.1.4 audio元素和video元素的浏览器支持情况 56 3.2 使用HTML5 Audio和Video API 56 3.2.1 浏览器支持性检测 57 3.2.2 理解媒体元素 58 3.2.3 使用audio元素 62 3.2.4 使用video元素 63 3.2.5 进阶功能 68 3.3 小结 70 第4章 Geolocation API 72 4.1 位置信息 72 4.1.1 纬度和经度坐标 73 4.1.2 位置信息从何而来 73 4.1.3 IP地址地理定位数据 74 4.1.4 GPS地理定位数据 74 4.1.5 Wi-Fi地理定位数据 74 4.1.6 手机地理定位数据 75 4.1.7 用户自定义

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值