关于Android WebView的那点事儿..

1.禁止网页长按弹出文字选择功能:

mWebView.setOnLongClickListener(new WebView.OnLongClickListener() {

	@Override
	public boolean onLongClick(View v) {
		// TODO Auto-generated method stub
		return true;
	}
			
});


2.只有点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。(可重写此方法在跳转网页时修改其标题):

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    //设置页面新标题
	String title = getTitle(url);
	mTitleText.setText(title);
				
    //加载页面
	view.loadUrl(url);
				
	return true;
}

3.在网页中处理按键事件:

@Override
public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
        return super.shouldOverrideKeyEvent(view, event);
}

4.点击网页中电话号码或者手机进行拨打电话:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if(url.contains("tel:")) {
	String phone = url.substring(url.indexOf(":") + 1);
	SystemUtil.callPhone(WebViewActivity.this, phone);
	return true;
	}
				
	return true;
}

/**
 * 拨打电话
 * @param context
 * @param num
 */
public static void callPhone(Context context, String num) {
    if(isPhoneNumberValid(num)) {
        //点击数字后立即拨打
//		Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + num));
		//点击数字后跳转到拨号盘
		Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:" + num));
		context.startActivity(intent);
	}
}
	
	
/**
 * 验证电话号码或者手机号码
 * @param phoneNumber
 * @return
 */
public static boolean isPhoneNumberValid(String phoneNumber) {
	boolean isValid = false;
		
	String expression = "((^(13|15|18)[0-9]{9}$)|(^0[1,2]{1}\\d{1}-?\\d{8}$)|"
			+ "(^0[3-9] {1}\\d{2}-?\\d{7,8}$)|(^0[1,2]{1}\\d{1}-?\\d{8}-(\\d{1,4})$)|"
			+ "(^0[3-9]{1}\\d{2}-? \\d{7,8}-(\\d{1,4})$))";
	CharSequence inputStr = phoneNumber;
	Pattern pattern = Pattern.compile(expression);
	Matcher matcher = pattern.matcher(inputStr);
	if(matcher.matches()) {
		isValid = true;
	}
		
	return isValid;
}



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值