移动端

解决ios移动端双滚动条导致滚动穿透问题

折月煮酒 提交于 2020-11-19 14:56:18
解决方案1 在弹出层的 touchstart 事件中调用 preventDefault 这种方法不可取,至少有3个缺点: 如果弹出层本身是有滚动(条)的话,将会导致弹出层无法滚动,此时用这种方法无异于饮鸩止渴。 一个很常见的场景,点击弹出层,弹出层消失掉,此时也无法触发弹出层的点击回调事件。 弹出层内的任何事件都执行不了了。 解决方案2 此解决方案是解决方案1的升级版。 在弹出层的 touchmove (注意区别)事件中调用 preventDefault 这种解决办法没有了第一种解决办法的 2, 3 缺点。适用于弹出层本身有没有滚动(条)。 解决方案3 设置body{overflow:hidden;} 缺点:经测试,在PC上支持良好,但是在IOS端,跟没有设置是一样的,完全不起任何作用!。 这种解决方案适用于PC端。 解决方案4 设置 html,body{overflow:hidden;} 在PC和移动端都能禁止掉下层的滚动。 缺点: 滚动位置丢失!页面会回到顶部! 页面的背景还是能够有滚的动的效果(这个我没遇到)。 可通过js来fix这个缺点,在弹出层出现时,记录页面的 scrollTop ,当弹出层消失时,把先前记录的 scrollTop 再次赋予页面。 终极完美解决方案 此解决方案能够避免上述所有缺点。堪称完美。 (这个方案会导致主页面display:flex

web报表移动端如何进行移动设备绑定与撤销

若如初见. 提交于 2020-04-06 19:47:48
场景需求描述 为了增强移动端的登录机制验证,保证数据的安全性,报表工具FineReport提供了移动设备绑定的功能,每个系统用户在使用移动端连接系统的时,需要管理员授权,将用户的移动设备与系统绑定起来,如果管理员没有给设备授权,则无法登录。 注:给移动设备授权,需要配合用户使用,也就是说用户只能使用固定的一台或几台设备登录系统,如果使用别的设备登录,但是该设备没有授权,也是无法登陆的,如果在一台已搜授权的设备上切换账号登录,还需再次给该切换的账号授权。 另:一个新的工程,第一个用户使用移动端登录时,不需要管理员授权,比如说,用户Anna是整个工程第一个用户使用移动端登录的,那么Anna使用的这台设备不需要授权,可以直接连接,以后的别的用户的设备就需要授权了。 一、移动设备绑定步骤 准备一个新的WebReport工程,启动内置服务器。 1、开启移动设备绑定 FineReport的移动设备绑定功能默认是关闭的,使用之前先要开启,在PC端的浏览器地址栏中输入http://localhost:8075/WebReport/ReportServer?op=fs,使用管理员账号登录,点击管理系统>移动平台>设备绑定,开启移动设备绑定,如下图: 2、第一个设备登录 先在一台机器上使用管理员账号连接该工程,可以直接登录,不需要给设备授权。管理员在PC端登录数据决策系统,进入管理系统>移动平台

从供需匹配理解Uber的致胜关键是什么?

时光总嘲笑我的痴心妄想 提交于 2019-12-05 12:28:39
  在准备我们的远程协作功能的流程开发设计的时候,我的同伴对我说, 程序员接私活 其实不喜欢抢单,能够像Uber那样,用配单的形式来做么?这是个好问题,配单是Uber与其他几个打车软件很不一样的地方,但是,Uber的致胜关键远远不止这一点,而我一直对Uber的模式很感兴趣。因此,我们不妨把这个问题扩大为,远程协作的任务撮合模式,我们可以学习Uber么?   因此,我们先来总结一下, Uber的获胜机制是什么?    溢价算法-让市场的手来调节价格,分配资源   和其他打车软件不一样,Uber的溢价不是计划好的(比如雕爷在《论Uber为什么该得诺贝尔经济学奖》里面提到,它可以比的士还要便宜,也可以贵到时普通价格的3.8倍,完全由供需决定),是依据供求动态平衡”,溢价系数应该是和该区域的用户需求以及司机数量比例相关,也就是直接的供需关系。    匹配算法-快速响应,优良服务,顾客体验的正循环   对于司机而言,派单是比抢单更轻松的方法。Uber在派单之前用来匹配“乘客需求-司机供给”的模型,每个订单通过算法(包括,最短到达时间,是否可用、以往评价等因素),决定了司机和车辆的推荐顺位。    通过算法找到能够最短到达的司机   司机看不到目的地,因此也无法拒载。(潜在问题是,司机如果对目的地那片区域如果不熟悉怎么办?除非算法里自动匹配司机过往的行车记录,有类似行车记录的司机才进行推荐

Android常用的开源第三方库总结

南笙酒味 提交于 2019-12-05 04:03:59
主要从android整体框架、数据库(orm)、敏捷开发(注解)、网络请求、json序列化、缓存、加载网络图片和响应式编程,这几个方面去整理,并附上各个项目github和官网地址,方便开发中的取舍。 ###xUtils 主要由4个模块组成DbUtils模块、ViewUtils模块、HttpUtils模块和BitmapUtils模块 架包格式: aar(834KB) gradle('org.xutils:xutils:3.3.34') 地址: https://github.com/wyouflf/xUtils3 ###ormlite-android 主要依赖注解和反射的方式;使用简单,易上手。 架包格式: jar(56KB) gradle('com.j256.ormlite:ormlite-android:4.48') 地址: https://github.com/j256/ormlite-android ###GreenDao 由greenrobot提供开发;系能最大化,效率很高,插入和更新的速度是sqlite的2倍,加载实体的速度是ormlite的4.5倍 架包格式: jar(98KB) gradle('de.greenrobot:greendao:2.1.0') 地址: https://github.com/greenrobot/greenDAO ###ButterKnife

AutoLayout-代码布局添加动画

懵懂的女人 提交于 2019-12-03 16:25:08
开始之前先推荐老外封装好的开源库 Masonry ,Masonry 是一个轻量级的布局框架,拥有自己的描述语法,简洁明了并具有高可读性。下面得例子用系统API实现一个和Masonry一样得布局,点击一个Button改变尺寸,Button尺寸不能超过VC界面; 添加一个button在VC中心 @interface PPBUpdateVC() @property (nonatomic,strong) UIButton *growingButton; @property (nonatomic,strong) NSLayoutConstraint *layoutWith; @property (nonatomic,strong) NSLayoutConstraint *layoutHeight; @end 添加button self.growingButton = [UIButton buttonWithType:UIButtonTypeSystem]; [self.growingButton setTitle:@"Grow Me!" forState:UIControlStateNormal]; self.growingButton.layer.borderColor = UIColor.greenColor.CGColor; self.growingButton.layer

nodejs 微信公众号支付开发

爷,独闯天下 提交于 2019-11-30 07:53:50
nodejs 微信公众号支付开发 博客 NodeJs 微信公众号功能开发,移动端 H5页面调用微信的支付功能。这几天根据公司的需要使用 node 和 h5页面调用微信的支付功能完成支付需求。现在把开发过程重新捋一遍,以帮助更多的开发者顺利的完成微信支付功能的开发。(微信暂时还没有提供 node 的支付功能) 一.请求CODE 请求 code 的目的就是获取用户的 openid(用户相对于当前公众号的唯一标识) 和access_token,请求的 API : https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect 此 api 需要注意几个参数: 1. appid公众号的 appid,可以在公众号中看到 2. redirect_uri 自定义的微信回调地址, 微信会在你请求完上面的地址后跳转到你定义的redirect_uri的地址, 带着 code,此处的 redirect_url 需要 **url_encode** *php*, 如果你的程序是 node 则需要使用 **encodeURLComponent(url)**编码

Web移动端Fixed布局的解决方案

可紊 提交于 2019-11-28 17:19:25
iOS下的 Fixed + Input BUG现象 让我们先举个栗子,最直观的说明一下这个 BUG 的现象。 常规的 fixed 布局,可能使用如下布局(以下仅示意代码): <body class="layout-fixed"> <!-- fixed定位的头部 --> <header> </header> <!-- 可以滚动的区域 --> <main> <!-- 内容在这里... --> </main> <!-- fixed定位的底部 --> <footer> <input type="text" placeholder="Footer..."/> <button class="submit">提交</button> </footer> </body> 对应的样式如下: header, footer, main { display: block; } header { position: fixed; height: 50px; left: 0; right: 0; top: 0; } footer { position: fixed; height: 34px; left: 0; right: 0; bottom: 0; } main { margin-top: 50px; margin-bottom: 34px; height: 2000px } 然后看起来就是下面这个样子

40条常见的移动端Web页面问题解决方案

懵懂的女人 提交于 2019-11-26 19:48:22
安卓浏览器看背景图片,有些设备会模糊 用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样 devicePixelRatio=2 ,现在android比较乱,有1.5的,有2的也有3的。 想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍)。例如一个div的宽高是100100,背景图必须得200200,然后 background-size:contain; ,这样显示出来的图片就比较清晰了。 代码如下: background:url(../images/icon/all.png) no-repeat center center; -webkit-background-size:50px 50px; background-size: 50px 50px;display:inline-block; width:100%; height:50px; 或者指定 background-size:contain; 都可以,大家试试! 图片加载 若您遇到图片加载很慢的问题,对这种情况,手机开发一般用c anvas 方法加载: 具体的canvas