android webview 页面加载拦截_webview 如何停止加载某个网页_2012yayang的博客-程序员秘密

技术标签: android  

android开发中,有时候会用到webview来显示。在webview页面中,若有这样的需求:拦截某个地址,并让其停止加载,只要用stopLoading就可以解决:

package com.lianxi.adapter;

import java.util.List;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnKeyListener;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.webkit.SslErrorHandler;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class TestActivity extends Activity  {
	 WebView web;
	 String bookId = "";
	 
	 protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.webview);
		
		web = (WebView)findViewById(R.id.webview);
		web.getSettings().setJavaScriptEnabled(true);
		web.getSettings().setDefaultTextEncodingName("UTF-8");
		web.getSettings().supportZoom();
		web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
		web.requestFocus();
		web.setWebViewClient(new WebViewClient(){
			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url){
				try{
					if(url.indexOf("http://www.baidu.com") >= 0){
						view.stopLoading();//停止加载
						//……
					}
				}
				catch(Exception e){
				}
				return false;
			}
			@Override
			public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error){
				//重写此方法可以让webview处理https请求
				handler.proceed();
			}
			@Override
	        public void onPageFinished(WebView view,String url){
				String returnUrl = view.getUrl();
				if(returnUrl != null && returnUrl.indexOf("access_token") != -1){
					view.clearView();
				}
	        } 
		});
		findViewById(R.id.channelBackHome).setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				finish();
			}
		});
		web.loadUrl("http://www.baidu.com/");
		
		//后退
		web.setOnKeyListener(new View.OnKeyListener() {    
	        @Override    
	        public boolean onKey(View v, int keyCode, KeyEvent event) {    
	            if (event.getAction() == KeyEvent.ACTION_DOWN) {    
	                if (keyCode == KeyEvent.KEYCODE_BACK && web.canGoBack()) {  //表示按返回键 时的操作  
	                    web.goBack();   //后退    
	                    return true;    //已处理    
	                }    
	            }    
	            return false;    
	        }    
	    });  
		
	}
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yangyangya/article/details/10070295

智能推荐

在ScrollView中嵌套ListView或者RecyclerView时出现卡顿现象的解决方案_AndyYuan317的博客-程序员秘密

开发中我们遇到比较复杂的布局的时候就会使用到ScrollView和ListView或者RecyclerView布局的嵌套问题,但是当我们测试的时候就会出现一个问题就是界面卡顿的不得了,完成之后,发现一个问题,就是在滑动的不流畅,卡顿,基本就是手指移动多长,界面滑动多长距离。那么就使用如下解决方案大概:于是找资料,在recycleview添加这两个方法就可以了。...

面试题 3.一个有十亿条记录的文本文件,已经按照关键字排好序存储,设计算法,可以从文件中快速查找指定关键字的记录_Java天下第1的博客-程序员秘密

3.一个有十亿条记录的文本文件,已经按照关键字排好序存储,设计算法,可以从文件中快速查找指定关键字的记录。答: 十亿条记录对应的数据量在GB量级,分成100份,每份10MB 放入内存无压力每份第一条记录关键字和此纪录对应文件偏移量扫入内存 随机IO100次很快就能定位出指定关键字所在的记录块 然后把相应记录块拿到内存 二分法朝朝...

稍微硬核一点的java心路历程_后端代码心路_pxr007的博客-程序员秘密

java是啥?大多数新手程序员和我一样,就是认为学习了一门语言,就称自己为某某工程师了。但事实却不是这样的java是非常吃技术的。今天我们就来聊一聊,Java 开发工程师到底开发的是什么东西。准确点来说,Java后端到底在做什么?基础大家都知道 Java 是一门后端语言,后端指的就是服务端,服务端代码一般运行在服务器上,通常我们运行Java 程序的服务器都是 Linux 服务器。这些服务器在互联网公司中一般放在一个叫做机房的地方里,于是像我们这类 Java 程序员的代码一般也运行在这些机

elasticSearch 用head 新增数据;和排序查询 sort ;queryshardexceptiong:failed to find geo_point field [查不到的字段名称]_es-head 排序_西方契约的博客-程序员秘密

es查询报 字段不存在 错误queryshardexceptiong:failed to find geo_point field [查不到的字段名称]解决办法就是在 查询的索引中新增 一个字段数据就行:新增后查询结果为:使用 head 用某字段进行排序查询: 查询后缀 _search ;post请求;sort 为排序的信息;示例以 modTime...

Linux cron 计划任务日志跟踪_javawebsoa的博客-程序员秘密

场景:  需要在系统的cron中启动一个计划任务,跑的是一个shell脚本,脚本中大致意思是切换至        abc用户执行一个php文件(例如: /data/soft/auto.php),那么现在问题来了,脚本的内        容如下:          1234#!/bin/bash

随便推点

【java】经纬度_ivy_doudou的博客-程序员秘密

1、java获取经纬度private static double EARTH_RADIUS = 6378.137; private static double rad(double d) { return d * Math.PI / 180.0; } public static double getDistanceOfMeter(double lat1, double lng1, ...

语义化版本(SemVer)的范围_weixin_33841722的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准>>> ...

iOS cellForRowAtIndexPath 不调用原因分析_五锅锅的博客-程序员秘密

1:排查 delegate, dataSource 是否设置2:排查高度是否不为0或自动布局是否正确3:排查numberOfItemsInSection 是否不为0

剑指offer46-把数字翻译成字符串(java实现)_Wenlong_L的博客-程序员秘密

把数字翻译成字符串这个题目在牛客网上没有,在此仅将自己运行通过的代码记录下来供日后翻阅。题目:这里采用动态规划的方法给出我的自下向上基于循环迭代的解法: ...

C语言中的转义符'\d', '\n'相关_小小初行者的博客-程序员秘密

Demo 1printf("abc");printf("\b\n");--------------$abc疑问:输出”abc”,在打印”\b”退格符,光标应该在b后面,这个时候在打印’\n’之后,应该是把c覆盖之后换行;或者是在b后面换行,c在第二行输出 Demo 2printf("abc");printf("\bd\n");---------------$abd这次输出得到,确实是退

nginx获取get、post请求参数_nginx获取请求参数_赶路人儿的博客-程序员秘密

使用nginx原生指令、和lua的方法,获取http协议的get、post方法的参数

推荐文章

热门文章

相关标签