Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
移动Web开发经验总结
Search
cssrain
July 14, 2014
Technology
2
150
移动Web开发经验总结
cssrain
July 14, 2014
Tweet
Share
More Decks by cssrain
See All by cssrain
UED工作流程分享和交流
cssrain
1
350
解读HTML
cssrain
0
110
解读HTML5
cssrain
2
140
基础CSS(1)
cssrain
0
120
基础CSS(2)
cssrain
0
88
高效的CSS
cssrain
0
130
高级CSS—继承
cssrain
0
100
PhoneGap分享和交流
cssrain
0
80
PhoneGap实践
cssrain
0
55
Other Decks in Technology
See All in Technology
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
430
Lambdaと地方とコミュニティ
miu_crescent
2
370
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
630
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
890
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
150
AIチャットボット開発への生成AI活用
ryomrt
0
170
『Firebase Dynamic Links終了に備える』 FlutterアプリでのAdjust導入とDeeplink最適化
techiro
0
130
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
200
いざ、BSC討伐の旅
nikinusu
2
780
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
We Have a Design System, Now What?
morganepeng
50
7.2k
Navigating Team Friction
lara
183
14k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Rails Girls Zürich Keynote
gr2m
94
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Embracing the Ebb and Flow
colly
84
4.5k
Statistics for Hackers
jakevdp
796
220k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Transcript
移劢Web开发经验总结 CMC CRM Share-SRD New Business Dept . 单东林 .
2014.4.4
1. 项目介绍 2. 技术演进 3. 经验总结
辽宁CRM-G3项目 项目介绍 河南ESOP集团联系人G3项目 基于移劢终端设备(平板,手机,移劢终端) 采用Hybrid架构 使用模板引擎进行页面渲染
使用jQuery+jQuery Mobile进行页面开发 使用HTML5本地存储,CSS3,响应式设计等新技术 移劢终端项目:
技术演进
整体架构方案——Hybrid架构 Native WebApp Hybrid Native的优势: 直接调用系统提供的 API接口,如访问通讯录 直接使用系统提供的
GUI,如菜单,按钮 缺点: 代码无法共用,如苹果object- c,android-java 必须去App商庖更新 WebApp的优势: 支持多种平台,完全用 HTML、CSS和avaScript来 编写,开发成本低 缺点: 只能调用系统提供的部分 API接口,如gis定位 不能使用GUI工具包 Hybrid的优势: 直接访问Native API 跨平台Web技术 系统更新直接
整体架构方案——Hybrid架构 JS Webview Native ios, Android, wp7 PhoneGap——让Web 开发人员能够使用熟悉的HTML,CSS 和JavaScript
构建跨平台的移劢应用 1,建立了一套Native 到JS和JS到 Native的双向通道 2,能打包成各种平台应用
前端技术架构——模板&JSON 后端负责输出JSON数据 前端使用模板引擎进行页面渲染和交互处理 数据库,服务 API (输出JSON) APP Web
Mobile … 前端 后端
前端技术架构——模板&JSON Handlebars.js : 模板引擎 HTML + JSP HTML +
手劢拼接 + JSON HTML + 模板引擎 + JSON 需要注意的地方 • API 应用的封装程度尽量高,前端应用尽量不要包含业务逻辑 • 模板依旧选用的是handlebars,在移劢端有待改进
前端技术选型——jQuery&jQueryMobile 底层核心库:jQuery 进行底层DOM操作 封装Ajax方法 UI库:jQuery Mobile 使用它的样式库,如List,Form…
使用它提供的方法,如init,pagechange… 为什么不用Zepto.js ? • 缺少样式库支持 • 脚本插件也不够丰富
前端技术选型——UI库 滚动:iScroll 处理局部滚劢 滚劢性能接近原生 可定制性非常好 Q:使用overflow:auto不行吗? A:在移劢浏览器上,滚劢条显示有问题,并且交互体验很差,几乎用不了。 • 定制横向或纵向滚劢 •
是否显示滚劢条 • 可定制滚劢条样式及效果 • 惯性效果 • Snap效果
前端技术选型——UI库 滑动:Swipe 针对webkit的slider组件 简单,无依赖,可定制 可以设置回调 可以设置自劢滚劢 HTML结构简单
前端技术选型——UI库 弹出层:Popup 使用position:absolute和opacity实现
前端新技术方案 Grunt:自劢化构建工具,类似Ant、Maven。 SASS:CSS预处理,能在CSS中使用变量。 SeaJs:前端模块化管理。 Bootstrap:CSS和HTML的前端工具包。
响应式设计:使页面适合多种分辨率, 通过media属性来控制。
前端新技术方案——响应式设计 响应式:<link rel="stylesheet" type="text/css" media="screen and (max-device-width:320px)" href=“css320.css" /> <link
rel="stylesheet" type="text/css" media="screen and (max-device-width:640px)" href=“css640.css" /> 传统式:<link rel="stylesheet" type="text/css" href=“css.css" />
经验总结
类似于jsp的include方法 非常方便的引入公用文件,HTML开 发模式的弊端终于解决了 用法: HTML引入公用文件 <#include "/res/module/sys_top.inc"
/> !!!感谢超哥在百忙之中的帮忙。
localStorage,大小5MB 数据缓存在本地,减少请求,加快访问速度 用法:提供4个方法 案例:访问一次菜单就缓存,重新登录时清空 缓存 HTML5
本地缓存 nbhtml5mobi.utils.cacheManager.get() nbhtml5mobi.utils.cacheManager.update() nbhtml5mobi.utils.cacheManager.del() nbhtml5mobi.utils.cacheManager.clearAll()
tap,swipe事件不能在pc上使用,没有手机设备怎么办?分辨率大小不同, 没有这么多分辨率的手机怎么办?如何在PC的浏览器上开发? chrome设置模拟器,可以支持触摸事件,tap,touch,swipe等 设置: 设置浏览器模拟器
HTML5中的viewport设置
注:iphone宽度默认为980px,设置viewport后为320px;Android某型号是800,WindowsPhone7是1024。
环境仍不成熟 兼容性问题相比桌面端更严重 iPhone 完胜 Android 移动Web开发总结 •
设备太多,测试难以全面覆盖,特别是Android • 分辨率的处理很麻烦 • 第三方浏览器太烂,Bug多 • 浏览器支持不够,很多HTML5,CSS3高级属性不支持。 • 可用的组件较少 • 对HTML5,CSS3支持目前最好 • 版本不同导致差异几乎没有 • 第三方浏览器内核与Safari一样 • 异常bug少,劢画性能好
感谢聆听 Q&A