手机wap前端开发经验

news/2024/12/1 0:49:04/

对于我们前端来讲,wap2.0开发无疑是对我们的一个考验,这个考验主要是考验我们对于重构方面的功底。下面主要分 UI、HTML、CSS、Javascript三方面给大家分享在wap2.0开发中的一些个人经验。

兼容性方面

在介绍之前首先我得吐槽下wap2.0网页开发在兼容性上的事儿。

兼容性测试:比web浏览器还恐怖的手机浏览器
在这里,我拿我们传统的 web站点与wap2.0站点作对比,看看我们在兼容性测试中我们前端有多少活要干。

web站点兼容性测试

对于web网站,一般来说,目前我们需要兼容的是

1个操作系统(windows)X 4种浏览器(ie6、ie7、ie8、firefox)= 3种情况

要求高一点的web网站需要兼容的是

1个操作系统(windows)X 10 种浏览器(ie6、ie7、ie8、ie9、firefox3.6、firefox、chorme、opera、safari、遨游)+ 1个操作系统(mac) X 1种浏览器(safari)= 11种情况

wap2.0站点兼容性测试

做过wap2.0站点开发之后,你就会发现…IE6其实已经是很好的浏览器了,真的。

手机浏览器有多少种需要兼容

要做到比较好的兼容性,我们要兼容的手机浏览器至少有二十种情况(手机自带的浏览器+用户可安装的浏览器)

影响你wap页面整体效果的还包括:

手机型号
操作系统
浏览器类型
屏幕尺寸
颜色深度
还有两个更令人头痛的问题:

你没法使用css hack
你也没法逐一去测试各浏览器的实际效果
UI方面

在UI方面,由于不是我们前端负责的部分,在这里我就说一下我在开发过程中遇到的在UI上要注意的地方了

设计风格(色彩配色)
由于不同手机的颜色深度不一样,有的手机4096色,有的则1200w色,为了向下兼容颜色深度较少的手机,我们在UI设计的时候尽量简单为主,减少渐变特别是大范围的渐变色块的出现,避免在颜色深度不足的手机上出现颜色分层现象。

布局方面
由于不同手机屏幕尺寸差异性较大,有180×120分辨率的,也有540×960分辨率的,所以在设计上应该尽量采取简单布局,尽量少出现左右布局,因为在wap2.0站点上面 左右布局是做不了自适应的。

公司ui决定我们的wap2.0站点最小分辨率为240x360px,小于这个分辨率的用户…自己就看着办吧。

HTML方面

以下所说的“大多数”是指在我们测试过的机型中,发生此类状况的手机占比达50%及以上,“部分”为20%到50%;“少数”为20%及以下。而这个概率也仅仅只限于我们所测试过的机型,虽然我们采集的样本尽量覆盖各种特征、手机,但并不代表所有手机的情况。

大多数手机不支持的

表单元素的“disable”属性

部分手机不支持

<button>标签
input[type=file]标签
<iframe>标签

有部分手机不支持这几个标签,但因为这些标签在页面中往往具有非常重要的功能,所以属于高危标签,要谨慎使用。

少数手机不支持的

<select>标签:该标签如果被赋予比较复杂的CSS属性,可能会导致显示不正常,比如“vertical-align:middle”

我想说的是
在实际开发中,我们使用标签可以算是少了很多很多的选择了,因为,在调试中发现

  • 标签在部分手机上左侧那小点是默认保留的,而且设置 list-style:none 无效
  • 这个影响的有,我们在web网站中用在列表,导航中的 ul > li 结构 不得不用其他结构替换掉。

    在这里我就举个实际例子

    这个是我们wap站点的导航部分。

    原先在web上的结构是这样的

     <ul><li>搞笑</li><li>动漫</li><li>游戏</li><li>娱乐</li><li>原创</li><li>影视</li><li>音乐</li><li>体育</li>
    </ul>

    在wap2.0站点上得改成

    <div><span>搞笑</span><span>动漫</span><span>游戏</span><span>娱乐</span><span>原创</span><span>影视</span><span>音乐</span><span>体育</span>
    </div>

    然后第二个问题 就是要不要让导航自适应,就是说 如果手机屏幕足够大,能否考虑将8个导航文字,一列排过去,但是与ui那边讨论过之后决定使用居左排列2行的形式,即如果屏幕足够大,则会背景向右延伸,但导航文字距离保持不变。

    关于当初定的以 240×360分辨率为最小分辨率所衍生的问题

    这个问题出现在nokia手机上面,页面做出来之后在nokia 5800 s60 v5系统上面发现出来之后整个页面显得很小,320×480分辨率导航文字部分只占到手机屏幕宽度的一半左右,在百思不得其解之后,只好参考其他同类型网 站,发觉 激动网的 wap版本 用了个 viewport 属性,并把页面的初始大小为原来的1.4倍,即

    <!-- html document --> <meta name="viewport" content="width=device-width; initial-scale=1.4; minimum-scale=1.0; maximum-scale=2.0" /> 

    这样 nokia 的 塞班用户 与 高端智能手机如 android 和 ios 用户就能看页面清晰些大些,而低端用户由于不支持 viewport属性,所以没影响。

    放大之后图片变模糊解决方案

    和产品部门说明原因之后,解决了。怎么解决?没得解决…

    CSS方面

    以下所说的“大多数”是指在我们测试过的机型中,发生此类状况的手机占比达50%及以上,“部分”为20%到50%;“少数”为20%及以下。而这个概率也仅仅只限于我们所测试过的机型,虽然我们采集的样本尽量覆盖各种特征、手机,但并不代表所有手机的情况。

    大部分手机不支持的:

    “font-family”属性:因为手机基本上只安装了宋体这一种中文字体;
    “font-family:bold;”:对中文字符无效,但一般对英文字符是有效的;
    “font-style: italic;”:同上;
    “font-size”属性:比如12px的中文和14px的中文看起来一样大,当字符大小为18px的时候你也许能看出来一些区别;
    “white-space/word-wrap”属性:无法设置强制换行,所以当你网页有很多中文的时候,需要特别关注不要让过多连写的英文字符撑开页面;
    “background-position”属性:但背景图片的其他属性设定是支持的;
    “position”属性;
    “overflow”属性;
    “display”属性;
    “min-height”和”min-weidth”属性;
    

    部分手机不支持的:

    height”属性:对”height”的支持不太好,奇怪的是在我们的测试当中,仅仅只有很少部分手机不支持”width”属性;
    “pading”属性
    “margin”属性:更高比例的手机不支持”margin”的负值。

    少数手机对CSS完全不支持;
    我想说的是在进入实际开发的时候,我发现其实还有一部分的手机不支持 float 属性,超级郁闷!

    这样的话 一些左右布局 就不能用了。

    Javascript方面

    这部分测试相对不那么让人抓狂,要么干脆不支持,如果支持的话,对基本的dom操作、事件等支持度都还不错。但我们没有测试过很复杂的脚本。

    在我们测试过的手机当中,支持(包括不完全支持)JavaScript的手机比例大约在一半左右,当然,对于我们来说,最重要的不是这个比例,而是要如何做好JavaScript的优雅降级

    其他方面

    除了以上说写之外,还有一些不得不知道的小细节要注意的。

    部分手机不支持png8和png24,所以尽量使用jpg和gif的图片
    部分手机对于超大图片,既不进行缩放,也不显示横下滚动条
    少数手机在打开超过20k的测试页面时,会显示内存不足
    调试上的小建议

    前端开发使用自己手机作为初始测试平台的童鞋们,我建议你们安卓 uc浏览器7.9,这样基本上可以将你高端手机很优雅地变为半高端手机,能测出低端手机常见的bug出来。

    一般手机测试我们可以下载一个 Opera Mobile Emulator 来进行模拟,效果比较理想,要注意的就是当前页面的颜色深度, Opera Mobile Emulator 上的颜色深度直接是取电脑上的颜色深度,这个是和真机是不一样的。

    然后就是关于手机上测试时令人抓狂的缓存问题,我建议为你修改过的样式文件,js文件给个版本号来减轻缓存的影响。

    转自互联网


http://www.ppmy.cn/news/579159.html

相关文章

手机wap端开发微信绑定第三方登陆功能

1.申请一个“微信公众平台服务号”&#xff1b; 2.开发者模式 - 配置服务器(微信公众平台里面的配置) 我们需要配置三个值&#xff1a;服务器地址&#xff08;接收消息的地址&#xff09;、自定义token、消息加密方式&#xff08;可选择明文或者密文&#xff09;&#xff0c;暂…

PHP实现支付宝手机WAP支付接入说明

因为项目原因&#xff0c;最近刚在项目中接入了支付宝的支付&#xff0c;故将支付过程记录下来以备查看。 项目背景&#xff1a;该项目为手机WAP项目&#xff0c;所以接入的是支付宝的手机网站支付类型。 首先&#xff0c;在支付宝官方下载SDK和DEMO&#xff1a; https://do…

手机wap页面开发小记

最近偶然开发手机wap页面&#xff0c;记点新鲜的东西&#xff0c;嘿嘿。 1. 页面要标记为手机wap页面&#xff0c;可增加百度等工具对wap页面的识别度。 例如&#xff1a;<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapfo…

php(wap)获取手机号码,WAP获取访客手机号码

抓取网站访客手机号 我们先了解一下常规移动网络的连接方式 WIFI&#xff0c;手机wifi上网其实电信、联通、移动的移动运营平台没啥事&#xff0c;因为他走的路由器其实是走的传统的有线上网。所以wifi上网默认走的有线&#xff0c;不扣流量&#xff0c;也无法获得号码了 常规三…

手机wap适配

<meta name"viewport" content"widthdevice-width, initial-scale1.0, minimum-scale0.5, maximum-scale2.0, user-scalableyes" /> wap手机页面自动适应手机屏幕宽度 大 | 中 | 小 2012/08/25 17:51 , mdy Css 重构 , 评论(0) , 阅读(5969) , V…

wap网游php源码,wap 文字游戏

【实例简介】 一款仙侠类文字游戏的php源代码------------------------------------------------------- 【实例截图】 【核心代码】 某wap文字网游源码 ├── web │ ├── class │ │ ├── encode.php │ │ └── player.php │ ├── css │ │ └─…

GitHub 上数百万个存储库可能容易被劫持

GitHub 上数以百万计的企业软件存储库很容易受到重新劫持&#xff0c;这是一种相对简单的软件供应链攻击&#xff0c;威胁行为者将依赖于特定存储库的项目重定向到恶意攻击。 研究人员在本周的一份报告中表示&#xff0c;这个问题与 GitHub 用户或组织更改项目名称或将其所有权…

支付宝手机wap支付对接接口

最近一直在做微信小程序开发&#xff0c;今天突然要开发支付宝手机版支付&#xff0c;突然打开支付宝开发平台&#xff0c;有点懵逼&#xff01;好久不看居然变化了不少&#xff0c;闲话不多说&#xff0c;下面写下对接过程和流程。 1 申请蚂蚁金服支付宝商家服务&#xff0c;…