各机型适配经验
-
每人手头机器 访问
-
android 2.2 2.3机器不支持直接配置wifi代理, 可以考虑使用第三方代理软件 ProxyDroid
-
android 2.3 及之前机器 不支持html元素 添加 hidden 属性
-
android 2.3 及之前机器 不支持 input元素的 padding-top padding-bottom 属性
- 部分android 不支持 input元素的keyup事件, 统一使用 input 事件
$("search-box").addEventListener("input", function (event) { correctApperanceDepUserInput("keyup"); });
- android2.3 不支持html5新属性 - dataset 解决方案:
<!DOCTYPE html>
getDataset(android 2.3不支持HTML5新属性--dataset) - 检测安卓版本在2.3之上的代码片段
(function () { // 为 mobile 环境做一些适配 var ua = navigator.userAgent; $.isAndroid = /(Android)/i.test(ua); $.isIOS = /(iPhone|iPad|iPod|iOS)/i.test(ua); var wkmatch = ua.match(/AppleWebKit\/([0-9]+)/); alert(ua); var wkVersion = !!wkmatch && wkmatch[1]; var isBadAndroid = ua.indexOf('Android') > -1 && wkVersion < 534; alert(wkVersion); if (isBadAndroid) { // 是否具有打开群部落接口的能力 $.canInvokeTribeInterface = false; } else { $.canInvokeTribeInterface = true; } }());
-
Android 2.3一下不支持 classList 获取元素的class列表, 采用以下方式:
hasClass:function(elem,className){ if (!elem || !className) { return false; } if(elem.classList) return elem.classList.contains(className); else return -1 < (' ' + elem.className + ' ').indexOf(' ' + className + ' '); }, addClass:function(elem,className){ if (!elem || !className || Q.util.hasClass(elem, className)){ return; } if(elem.classList) elem.classList.add(className); else elem.className += " "+ className; }, removeClass:function(elem,className){ if (!elem || !className || !Q.util.hasClass(elem, className)) { return; } if(elem.classList) elem.classList.remove(className); else elem.className = elem.className.replace(new RegExp('(?:^|\\s)' + className + '(?:\\s|$)'), ' '); },
- Android 不支持对 div 出滚动条进行滚动,4.0以上才支持的,不过支持的并不好,没有滚动惯性 iOS也需要iOS5以上才对div出滚动条