今天上海下暴雨了,下班了走不了。
一天的工作也刚刚结束,慢慢慢下心来。和大家回味下webapp遇到的那些坑。
进过webapp开发的各种坑之后,心态坦然多了。不在那么彷徨而纠结,简单整理下这些坑,给大家一些建议。
和很多webapp团队一样,我们看上webapp,就是出于跨平台、解决开发成本的原因。
1:适配的坑
屏幕适配,主要media query实现。
ios基本就是320480或者320568,比较容易确定;
android适配就比较蛋疼,虽说主流屏幕是320、仍不免有360、400之类的,而且往往屏幕分辨率一致时也有宽不同的情况,这种情况下,高度确定就更加蛋疼。而webapp的高度必须用css确定的。这个往往又影响到内部元素的大小,XX%和固定宽度的写法,都不是很好,往往采用折中实现;
2:android返回键
在ios上,不存在返回键,可以只在界面设置“返回按钮”即可,这么做的前提是,所有页面结构塞在一个html中,通过定位、动画来实现切换;
但是在android,如果不做任何设置,返回是直接退出app的。这个自然很诟病,也有通过phonegap监听返回键事件,但是效果不太理想,往往监听不到或者重复执行操作。也有通过pjax(ajax、html5 history、pushstate)来实现,但是我还没有尝试,方法可以参考”张鑫旭“最新博客
3:phonegap
webapp虽说可以用web实现很多功能,但是硬件设备和系统本身的很多事件却无法直接调用;
比如通讯录、指南针、光感应等。现在phonegap通过系统集成,提供给了才有js调用系统功能接口,目前来说,虽然能够扑捉具体事件。但是任然不够灵活、操作速度也比较迟钝。当然,这可能是我的技术功底不足,希望大家多多指正。
4:浏览器性能
这才是webapp实现的重点。原生app,会通过主视图、试图的方式加载显示内容,包括异步加载、分布加载、内存管理等光是控制优化app性能。webapp就主要取决于浏览器本身;
webapp,而是通过app加载html文件实现,我们是在一个页面中集成所有肯能涉及到的模块,通过切换加载显示对应的数据。但是,任然发现,在数据稍多,例如25条房源数据,就显得比较卡顿了。也许和经验有关系,我也在学习,尽量优化;
ios目前对浏览器优化还是不错的,主要是android的浏览器问题。可以参考昨天的文章,回复数字”4“可以阅读。我做过一款app”上海房税“,可以app store 下载。ios体验还是可以的,但是android上一塌糊涂,基本只有60%手机可以直接运行。最后折中在android上采用wap方式实现。我发现在android上,webapp的内核在支持js上基本是坑爹,坑干爹的。很多简单的算法也很难执行。也许,可以采用云计算的方式,但是后来,时间有限,其他项目也上来了,就先到此为止。
总的来说,我现在,还是很不认同webapp,不管多少书多少人造势webapp是手机应用未来。希望说这些话的人,走过这些坑之后再发表观点,而不是为html5或者其他原因举旗而已。