说在前面
这两天在帮同学的网站写客户端,要求的功能是点击菜单中的某一项显示一个网页,之前的一个客户端是直接调用Intent跳转默认浏览器来进行访问。这次想做成在应用中访问的,也就是使用WebView来显示,虽然学了安卓快一年了,却从来没有写过WebView,过程中遇到了一些问题,故此记录。
效果展示
正如gif所示,WebView往下滑隐藏Toolbar,往上滑显示Toolbar,往左滑后退,往右滑前进。
WebView下滑隐藏ToolBar,上滑显示ToolBar
使用了Matarial Disign的小伙伴应该很清楚,Google提供了CoordinatorLayout来使控件能够响应滚动事件,比如说当滚动Re
继续阅读 »
随着手机性能的提高,以及iOS和Android两个平台的普及,更多的App都会选择两个平台的App都进行开发,在有些时候,为了更加快速的开发,我们会采用hybird方式开发,这个时候我们需要使用webview并且自己进行一些配置。Android的webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了chrome,因此问题很多,这里分享一些我使用过程的一些技巧和遇到的坑。
more
webview配置
java
mWebview.getSettings().setJavaScriptEnabled(true); //设置允许运行javascript
// HTML5 API flags
mWebview
继续阅读 »
做Android 5年多了,第一次在Fragment中使用WebView,先将Activity中的代码复制过来改改,没有想到,竟然无法正常显示,而是打开手机浏览器渲染WebView,返回后,Fragment一片空白。这还能忍受?Google一把,说是要继承WebViewFragment,但是一旦继承,就破坏了我的框架结构。然后看了下WebViewFragment的源码,并不复杂。所以就将相关的源码合并到现有的fragment中,本以为可以妥妥地解决问题,结果还是那样。最后在stackoverflow上解决了终极解决办法,那就是需要设置特殊的WebViewClient。
java
private class H5WebVie
继续阅读 »
默认情况下情况下,使用Android的WebView是不能够支持上传文件的。而这个,也是在我们的前端工程师告知之后才了解的。因为Android的每个版本WebView的实现有差异,因此需要对不同版本去适配。花了一点时间,参考别人的代码,这个问题已经解决,这里把我踩过的坑分享出来。
主要思路是重写WebChromeClient,然后在WebViewActivity中接收选择到的文件Uri,传给页面去上传就可以了。
more
创建一个WebViewActivity的内部类
```java
public class XHSWebChromeClient extends WebChromeClient {
// For Androi
继续阅读 »
最近团队里面在做程序界面统一的工作,因此希望统一字体,接到一个研究怎么自定义字体的任务。因为我们的开发模式,所以需要研究在界面内的字体自定义,以及webview的显示中的字体自定义。
android系统内置字体
android 系统本身内置了一些字体,可以在程序中使用,并且支持在xml配置textView的时候进行修改字体的样式。支持字段为android:textStyle ,android:typeface, android:fontFamily,系统内置了normal|bold|italic三种style, 内置了normal,sans,serif,monospace,几种字体(实测这几种字体仅英文有效),typace和fo
继续阅读 »