“这是一本你必须收藏的Windows 8应用程序书籍!这本书写得很出色,作者熟练地把构建一个Windows 8的HTML/JS应用程序所需的各种知识都涵盖在其中!”
——Jonathan Antoine,Infinite Square公司和微软公司的MVP
“本书对Windows 8应用程序开发做了很好的介绍。尽管我在XAML领域工作多年,这本书会让我好好思考一下JavaScript/HTML的未来。”
——Shawn Wildermuth,微软MVP(数据方面)、
作者、培训师和演讲者,www.wilderminds.com
“可以说,你现在拿在手中的这本书可以开启一段非常精彩的旅程,带你领略如何使用HTML和JavaScript去构建、分发Windows 8应用程序,并从中获益。虽然过去两年我一直在从事与Windows 8相关的工作,但坦诚地说,这本书还是让我学到这个平台的不少新东西,我已经迫不及待,想马上就用这些技术去开发应用程序了。”
——Chris Anderson,微软公司杰出的工程师,WinJS的开发者
“Chris和Brandon已经深入到Windows 8编程的核心,他们创作了一本简明、清楚又易于理解的教程,这本书应该出现在每个Windows 8程序员的书架上。如果你正使用HTML和JavaScript进行Windows 8编程,这本书就是你所需要的。”
——Jesse Liberty,Windows 8技术传道者,Telerik公司
“我觉得对任何醉心于构建伟大的Windows 8应用程序的人来说,本书都是必须阅读的一本参考书籍,这也是同类图书中的标杆之作。是的,这么说确实相当大胆,但考虑到两位作者是Windows 8应用程序开发领域的资深人士,特别是他们曾经在微软工作过,我对所作的评论就更为自信了。”
——Rey Bango,微软公司开发者管理经理
“这本书无疑是我读过的有关使用JavaScript构建Windows 8应用程序的书中写得最好的一本。它是一种无价的资源,帮助我将构建大型JavaScript应用程序和胖客户端应用程序的经验轻松地转换到Windows 8环境的应用开发中。Chris和Brandon做了一件了不起的事情,他们解释了何为HTML、JavaScript和CSS,他们还把如何在原生的Windows应用程序环境里运行Web技术的所有复杂细节和精妙之处都总结出来,完全发挥了WinRT及JavaScript扩展的强大威力。”
——Derick Bailey,独立顾问、在线视频授课者、演讲者和作者,
http://mutedsolutions.com和http://watchmecode.net
“Chris和Brandon做了一件真的非常出色的工作,他们解释了如何创建伟大的Windows 8应用程序。阅读此书,我学习到的是关于整个平台的知识。”
——Josh Williams,微软公司WinJS的首席开发负责人
封面图
目录
- 本书赞誉
- 译者序
- Chris Anderson序
- Rey Bango序
- 前言
- 致谢
- 第1章初识Windows 81
- 1.1第一个Windows应用商店应用程序1
- 1.2Visual Studio 2012入门5
- 1.3Blend的控件、绑定与样式11
- 1.4导航17
- 1.5WinJS和WinRT中的网络访问20
- 1.6拆分布局应用程序模板25
- 1.7其余内容29
- 1.8学习进度29
- 第2章绑定与控件30
- 2.1绑定30
- 2.2初始化器37
- 2.3绑定列表39
- 2.4排序与过滤40
- 2.5分组42
- 2.6模板43
- 2.7控件46
- 2.7.1HTML元素46
- 2.7.2WinRT控件47
- 2.7.3WinJS控件48
- 2.7.4自定义控件51
- 2.7.5控件类51
- 2.7.6控件属性和方法52
- 2.7.7控件事件54
- 2.8学习进度56
- 第3章布局57
- 3.1布局:征服设备迷阵57
- 3.1.1Windows 8:为消费者提供不受设备限制的选择58
- 3.1.2Windows 8布局58
- 3.1.3处理屏幕尺寸60
- 3.1.4使用CSS媒体查询以适应分辨率62
- 3.1.5使用媒体查询支持高清分辨率66
- 3.1.6方向68
- 3.1.7视图状态69
- 3.2使用CSS布局能力改善应用程序73
- 3.2.1CSS网格布局规范73
- 3.2.2自适应应用程序内容的布局75
- 3.3使用CSS和WinJS创建自适应的用户界面76
- 3.3.1为自适应的界面使用CSS Flexbox76
- 3.3.2为自适应的内容使用CSS多列布局79
- 3.3.3使用ListView创建自适应集合82
- 3.3.4在JavaScript中响应布局的变化83
- 3.4学习进度86
- 第4章版式87
- 4.1Windows应用商店应用程序的版式87
- 4.1.1Segoe UI字体88
- 4.1.2Cambria字体89
- 4.1.3Calibri字体90
- 4.1.4CSS3 Web字体91
- 4.1.5使用CSS调整版式94
- 4.2使用平台图标99
- 4.3在Windows应用商店应用程序中使用和操纵图标字体106
- 4.4学习进度111
- 第5章媒体112
- 5.1处理音频和视频112
- 5.2Windows 8媒体入门113
- 5.3样式化媒体并创建自定义控件115
- 5.4为视频添加字幕118
- 5.5添加视频效果121
- 5.6在Windows应用商店应用程序中使用音频123
- 5.7通过文件选取器使用用户媒体库127
- 5.8选择多个文件130
- 5.9其他的文件选取器类型133
- 5.10处理捕获媒体135
- 5.11让应用程序使用Play to功能138
- 5.12学习进度140
- 第6章绘图与动画141
- 6.1使用SVG与Canvas实现HTML5图形141
- 6.1.1SVG介绍141
- 6.1.2Canvas介绍144
- 6.1.3在Canvas和SVG之间做出选择147
- 6.2像素处理149
- 6.2.1Canvas的像素处理149
- 6.2.2使用Windows.Graphics.Imaging处理像素151
- 6.3Windows应用商店应用程序的动画153
- 6.3.1Windows应用商店中的动画:快速而流畅154
- 6.3.2CSS变换与动画154
- 6.3.3使用WinJS Animation库158
- 6.4学习进度161
- 第7章应用程序状态162
- 7.1设置162
- 7.2生命周期172
- 7.2.1WinJS生命周期事件辅助程序173
- 7.2.2会话175
- 7.2.3调试会话177
- 7.2.4WinJS会话辅助程序180
- 7.3文件182
- 7.4库185
- 7.4.1文件激活188
- 7.4.2文件选取器189
- 7.5学习进度193
- 第8章网络连接194
- 8.1网络功能194
- 8.2移动联网195
- 8.3XMLHttpRequest198
- 8.3.1XML结果解析199
- 8.3.2进度与错误199
- 8.3.3解析JSON结果200
- 8.4聚合202
- 8.5后台数据传输204
- 8.6Web内容207
- 8.6.1HTML内容208
- 8.6.2iframe承载209
- 8.6.3Web上下文209
- 8.7学习进度213
- 第9章Shell协定214
- 9.1Windows 8 Shell214
- 9.2协定215
- 9.3搜索协定217
- 9.3.1实现搜索217
- 9.3.2搜索建议221
- 9.4共享协定222
- 9.4.1共享目标226
- 9.4.2访问共享数据231
- 9.4.3报告共享进度234
- 9.5联系人协定235
- 9.5.1联系人选取器235
- 9.5.2联系人提供程序237
- 9.6调试协定提供程序242
- 9.7学习进度243
- 第10章Shell集成244
- 10.1动态磁贴244
- 10.1.1应用程序的磁贴245
- 10.1.2磁贴更新245
- 10.1.3大/小磁贴更新248
- 10.1.4磁贴图片249
- 10.1.5磁贴扫视250
- 10.1.6预定磁贴更新250
- 10.1.7辅助磁贴252
- 10.2徽章255
- 10.3后台任务257
- 10.3.1触发后台任务258
- 10.3.2创建后台任务258
- 10.3.3锁定屏幕应用程序260
- 10.3.4避免重复任务262
- 10.4Toast通知263
- 10.4.1从通知激活应用程序264
- 10.4.2预定Toast通知265
- 10.5学习进度266
- 第11章设备交互267
- 11.1触摸介绍267
- 11.1.1便于触摸的HTML控件268
- 11.1.2便于触摸的WinJS控件270
- 11.1.3使用屏幕边缘构建便于触摸的应用程序271
- 11.1.4使用SemanticZoom创建便于触摸的交互273
- 11.1.5支持鼠标与键盘交互277
- 11.2使用设备功能278
- 11.2.1声明设备功能278
- 11.2.2使用录制设备278
- 11.2.3添加应用内打印功能281
- 11.3使用位置数据283
- 11.3.1使用Geolocator对象284
- 11.3.2监视位置变化286
- 11.3.3使用Bing地图位置数据286
- 11.3.4模拟位置信息288
- 11.4使用传感器289
- 11.4.1使用光传感器290
- 11.4.2使用加速计291
- 11.4.3使用罗盘292
- 11.4.4使用简单的方向传感器294
- 11.4.5使用其他传感器294
- 11.5学习进度294
- 第12章原生扩展性296
- 12.1一个应用,多种语言296
- 12.2入门297
- 12.3WinRT和JavaScript环境300
- 12.4WinRT类302
- 12.4.1类与方法302
- 12.4.2方法与异常304
- 12.4.3类与属性306
- 12.5WinRT对象307
- 12.6C++/CX与JavaScript的WinRT类型309
- 12.6.1字符串312
- 12.6.2数组314
- 12.6.3WinRT值类型316
- 12.7委托与函数317
- 12.7.1C++ 11 Lambdas318
- 12.7.2从C++ 11 Lambdas创建WinRT委托320
- 12.8事件321
- 12.9并发与异步324
- 12.10学习进度329
- 第13章掘金之路330
- 13.1准备提交330
- 13.1.1建立开发者账户330
- 13.1.2预留应用程序名称331
- 13.1.3准备对应用程序进行本地测试332
- 13.1.4运行Windows应用程序认证包334
- 13.2提交应用程序到Windows应用商店337
- 13.2.1完成Windows应用商店提交过程338
- 13.2.2认证的等待游戏343
- 13.2.3处理拒绝344
- 13.2.4提交更新345
- 13.3使用广告346
- 13.3.1Windows 8风格应用程序的广告规则346
- 13.3.2使用Windows 8 Ads SDK346
- 13.3.3使用基于媒体的广告347
- 13.3.4使用基于文本的广告349
- 13.4开启应用程序试用模式350
- 13.4.1Windows应用商店API与模拟器介绍351
- 13.4.2试用功能的模拟与测试352
- 13.5使用应用内购买355
- 13.5.1创建应用内购买功能355
- 13.5.2在Windows应用商店提交过程中定义应用内购买359
- 13.6为货币化而设计359
- 13.7应用程序的推广与管理360
- 13.7.1在Windows应用商店仪表板中跟踪应用程序360
- 13.7.2让应用程序在Windows应用商店中得到推荐360
- 13.7.3获取收入362
- 13.8学习进度363
- 附录A为C家族的程序员介绍JavaScript364
- 附录B外观与样式概览387