Android WebView内嵌网页input无法选择文件解决 New!

最近发现公司APP内嵌的网页点击上传图片没任何效果,查资料得知是Android安全限制,WebView内网页默认没有读取本地文件的权限。虽然网上有解决方案,但是由于Android版本几经波折,API签名大相径庭,想要完全兼容,要实现多个方法,为方便以后使用,简单记录一下。

首先,在使用WebView的页面,增加如下全局变量,方便回调使用:
查看更多...

Android软键盘遮挡输入框问题解决 New!

移动APP、网站有界面底部存在输入框的情况,无论是原生还是WebView内嵌,在软键盘弹出时,经常会有遮挡输入框的问题,解决方法就是让软键盘弹出时窗口自适应,而非软键盘直接悬浮,网上看到有三种解决方案:

1、在你的activity中的oncreate中setContentView之前加上如下代码

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

2、在项目的AndroidManifest.xml文件中界面对应的Activity里加入android:windowSoftInputMode="stateVisible|adjustResize",这样会让屏幕整体上移。如果加上的是android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。 查看更多...

使用cPanel主机部署基于composer、laravel的Web应用

因为希望在闲置cPanel主机上部署composer、laravel应用,简单记录一下(并非cPanel使用教程)。

1、登录cPanel,在Domains一栏找到“附加域”,按照常规添加我们要绑定的域名,生成站点目录。
2、SSH登录cPanel主机(ip为主机ip,共享、独享都可以,账户、密码复用cPanel的账户、密码),测试是否有全局安装composer。
3、FTP或者SFTP连接主机,上传必要文件,composer install/update,如果速度过慢,可以参照本地开发时做法,执行composer config -g repo.packagist composer https://packagist.phpcomposer.com,随后继续直至安装完毕。 查看更多...

2016总结

又是一年年终,简单总结、吐槽一下,填补一下每年的年终总结。

2016,生活上,没太大变化,还是一如既往,上班、休息,休息、上班。

工作上,日常还是很多猎头联系,感觉不靠谱小猎头真是层出不穷,我既没更新简历、也没投递简历,没事就打电话加QQ,我说不考虑,说我格局low,说了解一下吧,完了又问我刚入职怎么又想着跳槽,是你找我的,我了解一下不行?更有甚者,找到我聊,聊了一会我说不是很感兴趣,那边居然截图发出来,说这人真啰嗦,最后又截图发给我后拉黑。这年头,猎头真心不靠谱!

做事上,从2016年4月接触现在公司,到5月入职至今,经历了兼职、全职重构及开发wap端的全过程,跟随app版本发布进度,经历了七八个版本过渡,app也由原生重构为了hybrid形式。 查看更多...

Windows VPN无法连接、无法删除问题解决小记

家里电脑一直配置有PPTP的VPN连接,最近使用,发现不知什么时候开始不能用了,表现为连接一直进行中,不会出错也不会成功,系统是Win8.1,而且VPN服务器是正常的(因为在其他电脑上一直用着),无奈就想删除连接重建,发现删除不掉。

按照网上的说法,可能是某些服务被禁止运行了,主要有Remote Access Connection Manager(远程访问连接管理器)和Remote Access Auto Connection Manager(远程访问自动连接管理器)

Remote Access Connection Manager服务的启动又要依赖两个服务:SSTPS(secure socket tunneling protocol service)服务、Telephony服务。而Telephony服务常处于启动状态,没有问题。问题是出SSTPS(secure socket tunneling protocol service)服务上,单独启动SSTPS(secure socket tunneling protocol service)服务时会提示:自动停止,直接启动Remote Access Connection Manager服务时又说依赖的服务不能启动。 查看更多...

Android Webview增加自定义userAgent、headers

最近维护公司app,要内嵌在线网站进来,因为在线移动网站是类似常见商城的形式,底部有几个导航按钮,而app内嵌的情况想从网页层面控制页面的返回,同时再针对app内嵌情况下的界面做一些控制。

可能前面说得比较晦涩难懂,下面举个例子,比如,页面有12345五个底部导航,默认进首页(1),当点击2345的时候,在android下点击原生返回键还会回到首页(1),这样的效果体验不是很好,所以页面全局拦截a链接,通过js采用location.replace来做跳转,这样一来,只要内部页面没有直接跳回12345五个页面的操作,整体跳转体验应该和app类似了。

另一个问题,要做微信分享,但是众所周知,网页目前是不可能直接分享到微信(除了二维码形式),所以这里在定义了特定协议,网页请求如share://share?title=朴人博客&content=朴人博客…,原生app内接收后解析处理,在webview上弹出分享界面。 查看更多...

Android Studio …aapt.exe” finished with non-zero…解决

升级Android Studio为2.2.2之后,旧项目编译出错,Android编译时出现如下错误

Error:Execution failed for task ':app:processAndroid360XmDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\Develop\Android\sdk\build-tools\21.0.0\aapt.exe'' finished with non-zero exit value -1073741819

搜索良久,很多做法都试了不好使,偶然间发现有人说可能使用JDK8的缘故,果断切JDK7尝试,尝试结果是根本切不回去,Android Studio 2.2.2提示使用JDK 8或者更新的版本。 查看更多...

sudo * 提示 command not found 解决

linux下经常遇到使用非root用户安装软件,使用sudo时提示找不到命令。

比如使用nodejs时候,出现

sudo: node: command not found
sudo: npm: command not found

很多文章说export临时修改环境变量或者直接sudo后chown指定命令所在文件夹的所有者,但是我们通常是在非root用户下使用,所以只需在root用户下增加部分软连接即可 查看更多...

iScroll5实现卡片左右滑动及动态加载

iScroll5是在iScroll4的基础重构而来,使用时发现网上大部分例子都是基于iScroll4,在iScroll5上面并不适用,比如横向滚动、当前索引、元素对齐等,这些不在赘述,有需求可以考虑去看看源码(重构过的源码看起来清爽很多)。

因为自己需要一个卡片左右滑动的效果,同时还希望有边界对齐的能力,不清楚这个效果有没有类似实现,大概看了下,新版iScroll也不是很大,就直接拿来用了,效果如下图所示:

iscroll5-1
查看更多...

安卓Adapter中getView方法重复执行及索引错位问题解决

Android开发中,经常会用到ListView,当然,也会用到Adapter为ListView绑定数据。通常,我们采用继承BaseAdapter并实现getView等方法的方式为ListView渲染数据,ListView中每个元素都会去调用getView做渲染。但是,如果ListView要展示数据非常庞大,创建成百上千个View是不可取的,于是乎,Android为我们提供了一套Recycler机制,可以重复利用已创建的View,降低对象开销。

原理如下:

在一个完整的ListView第一次出现时,每个Item都是null的,getView的时候会跑到需要inflate一个Item的代码段,假设整个view只能最多显示10个item,那么当滑动到第11个Item的时候,第一个item会放入"recycler",如果第11个Item和放入"Recycler"的item的view一致,那么就会使用"Recycler"里面的Item来显示,从而不用再重复inflate一次。

图示如下:

adapter-recycler
查看更多...

无觅相关文章插件,快速提升流量