37
Touch开发 应届生培训 钟志 无线事业部 2014-03-25

Touch开发应届生培训

Embed Size (px)

Citation preview

Page 1: Touch开发应届生培训

Touch开发 应届生培训

钟志

无线事业部

2014-03-25

Page 2: Touch开发应届生培训

目录

1 无线web开发概况

2 基础知识

3 事件

4 调试

目录

Page 3: Touch开发应届生培训

1

无线web开发概况

Page 4: Touch开发应届生培训

无线web开发使用的技术 1.1

WebApp

Page 5: Touch开发应届生培训

浏览器差异 1.2

无线设备中使用的大部分浏览器是基于webkit内

核的浏览器

Windows Phone使用的是IE浏览器,版本 > IE9

Page 6: Touch开发应届生培训

无线web应用场景 1.3

WebApp WebView Hybird

轻应用 微应用

Page 7: Touch开发应届生培训

无线网络的特点 1.4

设备屏幕小

• 按钮足够大

时间碎片化

• 暂停/随时中断

网速不稳定

• Wifi/2G/3G/4G

网络不稳定

• 网络状态监控

设备性能差

• 网页性能/动画

流量耗费用

• 资源尽量小

设备繁多

• 注意兼容性

Page 8: Touch开发应届生培训

设备差异 1.5

Retina

摄像头

麦克风

三轴陀螺仪

加速感应器

距离感应器

环境光传感器

指纹传感器

鼠标

键盘

Page 9: Touch开发应届生培训

2

基础知识

• viewport • tel • sms • input

Page 10: Touch开发应届生培训

viewport 2.1

viewport 全部属性

属性名称 属性说明 属性值

width viewport宽度 960 戒 device-width

height viewport高度 1000 戒 device-height

initial-scale 初始缩放比例 0.5

maximum-scale 最大缩放比例 2

minimum-scale 最小缩放比例 1

user-scalable 是否允许用户缩放 1 戒 0 (yes 戒 no)

<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">

锁定屏幕,禁止缩放

Page 11: Touch开发应届生培训

Viewport示例 2.1

查看源码

手机扫一扫

Page 12: Touch开发应届生培训

拨叫电话 2.2

<a href="tel:13988888888">拨叫</a>

在网页上生成一个链接,当用户点击时,手机开始拨叫指定的

手机号码

查看代码

Page 13: Touch开发应届生培训

发短信 2.3

<a href="sms:13988888888">发短信</a>

在网页上生成一个链接,当用户点击时,手机激活短信编写功

能,并自动填入手机号码

查看代码

Page 14: Touch开发应届生培训

新增的input类型 2.4

http://www.w3school.com.cn/html5/html_5_form_input_types.asp

HTML5 拥有多个新的表单输入类型。这些新特性提供了更好的输入控制和验证。

类型 说明

email 邮箱

url 网页地址

number 数字

range 一定范围内数字值

date 日期

search 搜索域

tel 电话

Page 15: Touch开发应届生培训

input示例 2.4

查看源码

Page 16: Touch开发应届生培训

input type="tel"截图 2.4

Page 17: Touch开发应届生培训

input type="number"截图 2.4

Page 18: Touch开发应届生培训

input type="url"截图 2.4

如何输入.cn域名??

长按试试

Page 19: Touch开发应届生培训

input type="search"截图 2.4

和text类型比较类似,不同点在于search类型在有内容输入后,

会有个删除按钮

Page 20: Touch开发应届生培训

input type="date"截图 2.4

Page 21: Touch开发应届生培训

input type="range"截图 2.4

属性 值 描述

max number 规定允许的最大值

min number 规定允许的最小值

step number 规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)

value number 规定默认值

Page 22: Touch开发应届生培训

input type="file"截图 2.4

1. iOS只能选择【照片】中的文件

2. 支持现场拍照照片戒录制视频

Page 23: Touch开发应届生培训

3

事件

Page 24: Touch开发应届生培训

鼠标事件——mouse 3.1

mousedown

mouseup

dblclick

mousemove

mouseover

mouseout

mousedown

mouseup

dblclick

mousemove

mouseover

mouseout

移动设备中没有鼠标

因此也就没有鼠标事件

Page 25: Touch开发应届生培训

:hover 3.2

-webkit-tap-highlight-color 点击链接高亮的时候设置颜色为透明

:hover 选择器用于选择鼠标指针浮动在上面的元素

a:hover { background-color: yellow; }

a { -webkit-tap-highlight-color: yellow; }

Page 26: Touch开发应届生培训

新增touch事件 3.3

事件名称 说明

touchstart 手指放在一个DOM元素上

touchmove 手指拖曳一个DOM元素

touchend 手指从一个DOM元素上移开

touchcancel 触摸被中断

1.touchstart

2.touchmove

3.touchend

Page 27: Touch开发应届生培训

Touch事件示例代码 3.3

obj.addEventListener('touchmove', function(event) { // iOS支持多触点,android只支持一个触点 for (var i = 0; i < event.targetTouches; i++) { // DOM元素,是动作所针对的目标 var touch = event.targetTouches[i]; // 唯一标识触摸会话(touch session)中的当前手指 console.log('touched ' + touch.identifier); // 动作在屏幕上发生的位置 console.log(touch.pageX); console.log(touch.pageY); } }, false);

Page 28: Touch开发应届生培训

从touch事件演变成手势 3.4

核心还是event.targetTouches,event.pageX, event.pageY, time = touchstart - touchend

Page 29: Touch开发应届生培训

click事件 3.4

Click事件在无线web开发中依然存在,但不推荐使用

因为click事件有延迟

Page 30: Touch开发应届生培训

online/offline 3.5

navigator.onLine

online/offline 事件

navigator.onLine 属性表示当前是否在线。如果为 true, 表示在线;如果

为 false, 表示离线。当网络状态发生变化时,navigator.onLine 的值也随

之变化。开发者可以通过读取它的值获取网络状态。

开发者还需要在网络状态发生变化时立刻得到通知,因此 HTML5 还提供

了 online/offline 事件。当在线 / 离线状态切换时,会触发online/offline

事件,因此,开发者可以通过监听它们的 online/offline 事件来获悉网络

状态。

Page 31: Touch开发应届生培训

Online/offline示例代码 3.5

window.addEventListener('online', onlineHandler, false); window.addEventListener('offline', onlineHandler, false); // 监听网络变化 function onlineHandler() { console.log(navigator.onLine); }

查看代码

Page 32: Touch开发应届生培训

deviceorientation 3.6

提供设备的物理方向信息,表示为一系列本地坐标系的旋角。

触发很频繁,毫秒级,谨慎使用

//注册一个deviceorientation事件的接收器

window.addEventListener("deviceorientation",

function(event) {

// 处理event.alpha、event.beta及event.gamma

console.log(event.alpha、event.beta, event.gamma);

}, true);

Page 33: Touch开发应届生培训

orientationchange 3.7

orientationchange事件主要用于手机浏览器,作用于触发手

机的横屏和竖屏之间的切换。我们可以根据这个事件,改变手机

在横屏和竖屏的显示状态。

window.addEventListener("orientationchange",

function(event){

// portrait竖屏 | landscape 横屏

console.log(event.orientation);

});

Page 34: Touch开发应届生培训

4

调试

• 模拟器调试

• 真机调试

Page 35: Touch开发应届生培训

Chrome DevTools 4.1

https://developers.google.com/chrome-developer-tools/

官方文档

1. 按F12开启开发者工具

2. 【Emulation】选项卡

名称 说明

Device 模拟何种设备

Screen 屏幕显示相关选项

User Agent 模拟浏览器UA

Sensors 传感器信息

Page 36: Touch开发应届生培训

真机调试 4.2

1. 本地起一个web server,戒者上传到开发机

2. 用真机通过ip戒者域名访问网页

Page 37: Touch开发应届生培训

5

Q & A