android WebView交互优化
安卓的WebView一般是嵌套在activity或者fragment中的,但是如果在这种activity页面上点击返回按钮,一般会finish掉当前activity.其实是应该关闭当前的WebView的界面,回到前一个连接的地址.一般我们使用一下的方法来实现.
if(webView.canGoback()){//在这里如果无法再往回后退的话,那么就会返回false,那么就可以执行自己的逻辑代码了.
webView.goBack();
}
接下来是Webview界面的一些常用的配置:
mainWebView.getSettings().setJavaScriptEnabled(true);
mainWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mainWebView.getSettings().setAppCacheEnabled(false);
mainWebView.getSettings().setSupportZoom(true);
mainWebView.getSettings().setSaveFormData(false);
mainWebView.getSettings().setDomStorageEnabled(true);
mainWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mainWebView.getSettings().setUseWideViewPort(false);
mainWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.contains("billPaySuccess.jsp")){
Intent intent = new Intent();
intent.setClass(getApplicationContext(), OrderPaySucActivity.class);
intent.putExtra("orderPayBean", orderPayBean);
startActivity(intent);
finish();
}else
mainWebView.loadUrl(url);
return true;
}
});
mainWebView.loadUrl(webUrlsl);
下面是对返回按钮的监听事件:
public boolean onKeyDown(int keyCode, KeyEvent keyEvent){
if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {
if (goBackView != null) {
goBackView.performClick();
} else
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
当按下返回键时,如果当前页面存在返回按钮那么相当于点击了返回按钮,如果没有返回按钮的话则finish掉当前页面.这样只在返回按钮的监听器中完成逻辑就可以了.
补充:
1.在网上看到网友有介绍下面这个东西的,没测试过怎么样
关于webview的加载栈,后来发现webview本身也有对应的API
//获取历史
WebBackForwardList mWebBackForwardList = webView.copyBackForwardList();
2.该网友的另外一篇关于webview的使用的文章写得不错,可以看看哦
http://blog.csdn.net/t12x3456/article/details/13769731
Android WebView Touch事件及相关问题处理
http://blog.csdn.net/t12x3456/article/details/17565171
android WebView交互优化的更多相关文章
- js与android webview交互
0x01 js调用java代码 android webview中支持通过添加js接口 webview.addJavascriptInterface(new JsInteration(), " ...
- android 从 phonegap 到 js webview 交互
像生活类.办公协同类. 动态添加,下载等. 1.phonegap 我这里用了旧的版本,可能新版本变化大了. 创建asset资源文件夹,然后新建index.html copy 相应的js 文件进来. 创 ...
- android webview开发问题及优化汇总
我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题.就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来.有些是老生常谈,有些则是个人摸索得出解决方 ...
- android webview js交互 第一节 (java和js交互)
转载请注明出处 挺帅的移动开发专栏 http://blog.csdn.net/wangtingshuai/article/details/8631835 在androi ...
- android网络交互之DNS优化知识整理
android网络交互之DNS优化知识整理 之前的工作中,经常会遇到DNS解析出问题导致网络交互的操作无法正常进行. UnknownHostException 在很多的移动开发过程中,与服务端的交互的 ...
- [android] WebView与Js交互
获取WebView对象 调用WebView对象的getSettings()方法,获取WebSettings对象 调用WebSettings对象的setJavaScriptEnabled()方法,设置j ...
- Android WebView页面加载优化
目前webapp越来越多,体验也越来越好,为了能够更好的使用WebView展示出流畅的的页面,可以从以下几点做优化: WebView缓存 资源文件本地存储 减少耗时操作 客户端UI优化 可能有人会说了 ...
- 客户端相关知识学习(十一)之Android H5交互Webview实现localStorage数据存储
前言 最近有一个需求是和在app中前端本地存储相关的,所以恶补了一下相关知识 webView开启支持H5 LocalStorage存储 有些时候我们发现写的本地存储没有起作用,那是因为默认WebVie ...
- Android应用性能优化(转)
人类大脑与眼睛对一个画面的连贯性感知其实是有一个界限的,譬如我们看电影会觉得画面很自然连贯(帧率为24fps),用手机当然也需要感知屏幕操作的连贯性(尤其是动画过度),所以Android索性就把达到这 ...
随机推荐
- 设置ASP.NET MVC站点默认页为html页
问题由来 部署了一个Asp.Net MVC的站点,其功能只是作为移动端的服务器,服务器空间里面除了CMS以外就没有其他的页面了.这对于我们来说确实是有点浪费了. 可以放点静态的啥小东西放在上面玩一玩. ...
- js里面引入js
document.write('<script src="http://js.xcar.com.cn/bbs/sidebar/js/publicSidebar.js"> ...
- Expression<Func<T, bool>>
public static Expression<Func<T, bool>> True<T>() { return f => true; } public ...
- bzoj 1823: [JSOI2010]满汉全席
#include<iostream> #include<cstdio> #include<cstring> using namespace std; ],next[ ...
- pthread_create如何传递两个参数以上的参数
涉及多参数传递给线程的,都需要使用结构体将参数封装后,将结构体指针传给线程 定义一个结构体 struct mypara { var para1;//参数1 var para2;//参数2 } 将这个结 ...
- svnadmin:error while loading shared libraries: libaprutil-1.so.0:cannot open shared object file: No such file or directory
wdcp下安装svn后一直提示 svnadmin:error while loading shared libraries: libaprutil-1.so.0:cannot open shared ...
- NOIP 2013 提高组 day1 T2 火柴排队 归并 逆序对
描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:∑i=1n(ai−bi)2∑i=1n(ai−bi) ...
- Hibernate中的组合映射
1.实体bean设计 car: public class Car { private int id; private String name; private Wheel wheel; set... ...
- 8种主要排序算法的C#实现
作者:胖鸟低飞 出处:http://www.cnblogs.com/fatbird/ 简介 排序算法是我们编程中遇到的最多的算法.目前主流的算法有8种. 平均时间复杂度从高到低依次是: 冒泡排序(o( ...
- [安卓]The Google Android Stack