work notes
本喵,一个快乐的web开发肥宅程序媛,参与过手机端、电视TV端、电脑端的开发。工作之余,总结了一些经验【避坑指南】分享给大家~
1. webView内嵌h5页面时,如果内嵌的页面有出现手机自带键盘或者任何可能触发手机自带键盘操作的需求,答应我,页面顶部导航栏一定要让客户端小伙伴来做。不然,且不说顶部高度需要根据各设备分辨率进行适配,单单手机自带键盘的弹出导致页面高度值及offsetTop值的变化就够你搞一个通宵的补救方案【就算搞出来了,也没有原生的顶部导航辣么完美】。对了,想要用position:fixed定位顶部导航栏的小伙伴听好了,木有用的,不要问我是怎么知道的QAQ……
2. 想要非a标签、input标签等允许获取焦点的元素获取焦点的话,加上tabIndex="1",tabIndex的值正常情况下是不影响的,可以随便填。除非你有用tab键切换焦点的需求,这样的话,需要注意一下,tabIndex值越大,tab值切换越先获取焦点。如果某元素上加上了tabIndex,不想让其点击获取焦点,只想让其按键【keyDown、keyUp等】,给这个元素加上style="pointer-events:none;"就行啦。
3. 使用jq-treetable插件的时候,需要全部展开可以用:$(元素).treetable('expandAll');即可。使用data-tt-id,和data-tt-parent-id的时候,一定注意两个值不能相同,相同会导致代码循环调用,浏览器会直接由于out of memory崩溃掉【鬼知道我为了找这个由于数据引起的bug找了多久。。。】
4. 使用bootstrap写后台代码的时候,经常会遇到自带插件不够用的情况,右转度娘:metronic,这个网站上的很多插件都可以用,源码需要付费才能下载。但是其实它里面用的插件也是网上公用的,很少有它自行开发的那种。所以这就意味着,你可以在网页上查看Element、Network等找出这个插件的名字就能用了。
5. 做手机端开发的时候,经常性有个需求就是,从客户端分享网页去微信或者QQ或者微博啥的。在微信、QQ、微博打开分享网页,有个需求是用户点击查看更多时,需要判断用户是否安装此应用,如果安装了就去打开客户端,未安装跳转到AppStore或者应用市场。
做这部分,一般需要客户端配置短链处理,网页打开直接使用location.href或者iframe打开短链即可。讨厌就讨厌在需要在社交软件里打开,QQ还好,软件未做处理,微信和微博会在打开时做拦截处理,根本不会跳转到短链上去【当然这也是为了用户的信息安全】。
在这里说一下,想去网上搜如何判断用户是否安装某应用的小伙伴不用费心了,是木有的。这时候会有小伙伴跳出来说,不对啊,为啥我从微信里打开部分软件的链接是可以一键跳转的呢?比如网易新闻啥的。哈哈,当时我的亲爱的PM也是这么质问我的。。。
脸上笑嘻嘻,心里MMP的我又跑去调研了。原来IOS9+提供了universal link的处理,可以在微信和QQ等直接打开,Android版和IOS9-的网页会直接跳转到应用宝网页版,应用宝会判断此应用是需要打开还是下载。这时候心里就琢磨,凭啥应用宝会给网易新闻这样的处理呀,不服不服!去应用宝网站一看,,,原来网易是应用宝的客户,人家花了钱的。。。
所以曲线救国,当时的处理方式为:准备一个引导页。点击分享页面,if{是IOS设备,1s后直接跳转到引导页},else{ if{是微信或微博,直接跳转至引导页}else{尝试使用iframe和location.href打开,3s延时后默认打不开软件跳转至引导页}}。引导页逻辑:判断是微信或微博【QQ可以直接打开】尝试使用iframe[仅android]和location.href打开,3s延时后默认打不开软件跳转至下载页[应用宝或AppStore]。
6. 强制不换行 p{white-space:nowrap;} 自动换行 p{word-wrap:break-word;word-break:normal;} 强制英文单词断行 p{word-break:break-all;}
*注意:设置强制将英文单词断行,需要将行内元素设置为块级元素。
嗒哒!今天先到这里喵,欢迎大家批评指正~~~
work notes的更多相关文章
- ASP.NET Core 1.1.0 Release Notes
ASP.NET Core 1.1.0 Release Notes We are pleased to announce the release of ASP.NET Core 1.1.0! Antif ...
- Android Weekly Notes Issue #237
Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...
- Android Weekly Notes Issue #230
Android Weekly Notes Issue #230 November 6th, 2016 Android Weekly Issue #230. Android Weekly笔记, 本期内容 ...
- Android Weekly Notes Issue #229
Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...
- Android Weekly Notes Issue #227
Android Weekly Issue #227 October 16th, 2016 Android Weekly Issue #227. 本期内容包括: Google的Mobile Vision ...
- Android Weekly Notes Issue #221
Android Weekly Issue #221 September 4th, 2016 Android Weekly Issue #221 ARTICLES & TUTORIALS And ...
- Android Weekly Notes Issue #219
Android Weekly Issue #219 August 21st, 2016 Android Weekly Issue #219 ARTICLES & TUTORIALS Andro ...
- MAGIC XPA最新版本Magic xpa 2.4c Release Notes
New Features, Feature Enhancements and Behavior ChangesSubforms – Behavior Change for Unsupported Ta ...
- Magic xpa 2.5发布 Magic xpa 2.5 Release Notes
Magic xpa 2.5發佈 Magic xpa 2.5 Release Notes Magic xpa 2.5 Release NotesNew Features, Feature Enhance ...
- Git for Windows v2.11.0 Release Notes
homepage faq contribute bugs questions Git for Windows v2.11.0 Release Notes Latest update: December ...
随机推荐
- 使用ajax请求数据时的几种做法
在进行前后端交互的时候,一般前端使用ajax向后端发送数据,后端根据发送的数据来返回数据,前端将这些数据接收并进行相应的处理 以下是在日常工作中总结的几点使用ajax传递数据时的情况: 1.在本页面( ...
- Java软件编码规范要求
1.一个类对应一个文件,文件名与类名保持一致 虽然一个“.java”源文件可以有多个类(不是内部类),但是不提倡那么写.
- WCF--找不到具有绑定 BasicHttpBinding 的终结点的与方案 https 匹配的基址。注册的基址方案是 [http]。
<system.serviceModel> <services> <service name="xxxxx.xxxxxx"> <endpo ...
- MHA源码分析——环境部署
为了更好地了解MHA的原理,计划对MHA源码进行详细的阅读,本文主要为部署源码阅读环境. 一.概述 mha是由perl语言开发,这里想通过eclipse+perl组件来阅读其源码,所以我们环境需要安装 ...
- EF学习之CodeFirst(二)--数据迁移
使用CodeFirst时,如果Model发生改变的话,例如我们给User类里面新加个Sex属性,运行时会出现如下错误: 这时我们需要使用数据迁移来将model的改变同步更新到数据库中. 1.启用数据迁 ...
- Gdb调试工具/ Makfile项目管理
gdb调试工具 gcc -g main.c -o main 常用命令 命令 简写 作用 help h 按模块列 ...
- c#listbox使用详解和常见问题解决
关于ListBox ListBox是WinForm中的 列表 控件,它提供了一个项目列表(一组数据项),用户可以选择一个或者多个条目,当列表项目过多时,ListBox会自动添加滚动条,使用户可以滚动查 ...
- 深入理解php中的ini配置(2)
继续接着上一篇写. 运行时改变配置 在前一篇中曾经谈到,ini_set函数可以在php执行的过程中,动态修改php的部分配置.注意,仅仅是部分,并非所有的配置都可以动态修改.关于ini配置的可修改性, ...
- Debian 9 vsftpd: version 3.0.3 配置
现在网上关于vsftpd的资料不少,但是版本已经比较老,配置起来各种错误,耽误不少时间,现将配置步骤更新如下,配置环境版本:Debian 9 + vsftpd: version 3.0.3 1.apt ...
- Mac下安装Spark
1.Scala 官网下载scala安装包后解压,路径随意. 编辑/etc/bash_profile添加$SCALA_HOME并修改相应PATH 2.SSH无密码登陆 ssh-keygen -t rsa ...