最近给公司做一个企业App,Android客户端+Java服务端,总共有十几个模块,其中有几个模块就是从服务端查询数据,手机上的功能有列表展示及下载附件。
我是做Java服务端开发的,不会Android,另外有android开发人员,经过讨论决定这块手机直接访问Java服务端(Java web系统)的页面,源自于开始给公司一个pad应用,也是光查询数据用,采用的是Android的webview访问web的一个url。
其实webview这种做法,最简单,省事,省成本,不用纯Android开发,web页面能访问,没问题,拿到手机上,或pad上测试——基本没什么大问题,有的话也是些css,js兼容性的问题。
所以这个功能我很快就在服务端开发完了,就是为了样式和兼容性,引入了jQuery-1.9.1,jquery.mobile-1.3.2。页面上一个文本输入框,可以输入标题进行查询,下面展示的就是列表。在手机上也测试了,大部分手机都没问题。
后来,交给测试部测试,人家来个压力测试,才1000多条数据,直接就死掉了,因为这个列表没有做分页功能。好了,加分页吧,关键是手机上分页得下拉刷新那种,怎么做,上网一搜,发现都在用开源的iScroll,网上有很多例子,后续也会专门来写这块,所以很快就加入到项目中,分页效果还不错,下拉刷新,上拉加载更多数据。
但是迎来的第一个问题就是那个input输入框怎么都没有焦点,压根不能输入,这必须得解决啊,开始没去网上搜,觉得是个小问题一会儿就能搞定,最后发现不是这么回事。我开始解决办法是页面加载完成后写js让input获得焦点就是设置focus方法了,电脑上好使,手机上不好使。后来Android开发人员说,它在Android端能够调我页面的js方法,这样好啊一试,发现有些手机上好使了,但是有些还是不好使。没办法,我把js一层一层过滤发现是iScroll的问题,只要把这个加载进来就不好使,去掉就好使,带着这个问题再上网搜,晕,发现网上到处是这个问题,而且解决办法千篇一律,就是让iScroll过滤input等html标签:
onBeforeScrollStart: function (e) { var target = e.target; while (target.nodeType != 1) { target = target.parentNode; } if (target.tagName != 'SELECT' && target.tagName != 'TEXTAREA' && target.tagName != 'INPUT') { e.preventDefault(); } },
重写这个方法,加上要过滤的标签input等。
按照这个改了后,发现电脑上好使,我用的chrome最新的39,专门为开发webview页装的,手机上还是不行,找了半天原因,还是不知道哪出问题。后来测试版本升级,给卸了重新安装,再测,发现好了,突然明白了是手机上缓存的原因。缓存啊,一直都在关注浏览器的缓存,忽视了手机上的缓存,还是手机开发做的少啊。
相关推荐
Android8.0以下手机自带的android-system-webview版本过低使用
而WebView则是Android系统中的一个组件,它允许开发者在应用程序中嵌入网页内容,实现类似浏览器的功能。 **PHP** 是“超文本预处理器”的缩写,是一种解释型的、面向对象的、通用的脚本语言。在Web开发中,PHP常...
在实际开发中,你可以通过引入`crosswalk-webview-14.43.343.23-arm`这样的库文件,将Crosswalk-WebView集成到Android项目中。这个特定版本是针对ARM架构的设备,包含了特定版本的Crosswalk-WebView,确保在相应设备...
在开发中,有时候我们会在app中使用WebView加载一个web页面。这样可以适当减轻我们开发的难度...这里我们就利用动画,以及 获取网页的快照来实现android activity 默认的切换效果(页面从右往左进入,从左往右退出)。
Android-X5WebView基本封装和使用 通过OkHttp拦截器、自定义CookieJar有效完成客户端与H5端的Cookie同步管理 监听WebView的加载进度 滚动条的设置(隐藏或者显示,内侧显示还是外侧显示) 优化X5WebView的预加载问题...
在Android开发中,有时我们需要利用第三方库来增强应用的功能,比如WebView。WebView是Android系统提供的一种用于在应用程序中展示网页内容的组件,但它的功能相对有限。这时,我们可以选择集成Cordova来提升WebView...
然而,在实际使用中,我们可能会遇到一些问题,比如在WebView中使用`<input type="file">`标签时,用户无法选择本地文件。这个现象主要是由于Android的安全机制和权限控制导致的。本文将详细讲解如何解决这个问题。 ...
总的来说,"xamarin-android-webview-upload.7z" 示例项目展示了如何在 Xamarin Android 应用中集成图片上传功能,利用 C# 代码和 Web 视图组件,为用户提供一个无缝的原生应用体验。理解并实践这个示例将有助于...
在本DEMO中,"Android-WebSocket-WebView"着重展示了如何在Android应用中集成WebSocket功能,并利用WebView加载网页,实现客户端与服务器的实时交互。这个项目对于理解WebSocket与Android WebView的结合使用具有重要...
React Native WebView是一个流行的开源库,它允许React Native应用嵌入网页内容。这个库使得开发者能够利用Web技术(HTML、CSS和JavaScript)与React Native原生功能的结合,为移动应用提供丰富的交互体验。在...
《Crosswalk-WebView:构建高性能Android Web应用的关键》 Crosswalk-WebView,作为一个开源项目,是Google Chrome浏览器的分支,旨在为Android应用提供一个稳定且高性能的Web运行环境。它替代了Android系统自带的...
react-native-android-fullscreen-webview 概述 默认情况下,React Native随附的WebView组件无法显示全屏。 该软件包实质上复制了现有的Android版WebView,并添加了一些额外的功能来启用全屏视频。 iOS默认情况下...
然而,由于RN的Webview组件在Android客户端上存在一些限制,可能导致无法直接支持上传本地图片文件。本教程将详细介绍如何解决这一问题。 首先,我们要理解问题的根源。React Native的`<WebView>`组件在Android上...
uni-webview.js
在Android开发中,Webview是一个非常重要的组件,它允许我们在应用程序内部嵌入网页内容,提供类似于浏览器的功能。本文将深入探讨如何在Android的Webview中实现缓存功能,包括指定缓存目录、设置缓存时间等关键知识...
react-native-android-webview解决React Native自带的WebView组件Android不能拦截URL的问题安装npm install react-native-android-webview --save 本机库链接安卓android/settings.gradle添加到android/settings....
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中加载和显示网页内容。WebView不仅能够呈现HTML、CSS和JavaScript,还支持与Android原生代码进行交互,从而实现更丰富的功能。本篇文章将深入...
3. **权限问题**:如果应用没有请求读取外部存储的权限(READ_EXTERNAL_STORAGE),那么在Android 6.0及以上版本,Webview无法访问外部存储。 ### 解决方案 #### 1. 使用`WebChromeClient`和`...
在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现与网页的交互。本文将深入探讨如何封装一个高效的WebView,包括如何获取网页标题、如何处理图片加载、如何实现...
《Unity与WebView集成详解》 在移动应用开发中,Unity引擎以其强大的3D图形渲染能力和跨平台特性,被广泛应用于游戏开发。然而,有时我们还需要将网页内容嵌入到Unity应用中,这时就需要用到Unity与WebView的集成。...