WebView 之 4__为什么要使用WebView, WebView 自定义的url拦截问题

思考一个问题 : 为什么要使用WebView ?

有两个好处:  兼容已有的项目,可以动态更新

由此又引出一个问题:既然WebView 这么好用, 为什么还要原生开发?

原因: 1 耗电量

            2 加载速度慢,这是一个重要的原因, 网页的各种元素加载 比 纯原生组件加载 要慢得多

            3 对访问硬件支持弱

WebView 的loadUrl() 可以加载html页面, jsp页面

=========================================

本文介绍下  WebView 自定义的url拦截问题, 示例需要服务器端, Android客户端 两边的代码,配合运行.

第一步 在 JavaWeb服务端 定义一个 startActivity.jsp页面, 这里有一个链接指向一个url, 实际上指向自身startActivity.jsp也可以,

启动服务端程序;

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>startActivity</title>
  </head>
  <body>
	  <center><a style="font-size:50px;" href="http://www.shenwud.com/jpush/">load page</a></center>
  </body>
</html>

第二步  创建一个Android示例, 创建2个Activity: MainActivity, TargetActivity,  在MainActivity中, 编写以下代码

public class MainActivity extends Activity {
	private WebView wv;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		wv = (WebView)findViewById(R.id.wv);
		wv.getSettings().setJavaScriptEnabled(true);
		wv.loadUrl("http://www.shenwud.com/jpush/startActivity.jsp");
		wv.setWebViewClient(new WebViewClient(){
			
			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url) {
				if(url.endsWith("jpush/")){
					Intent intent = new Intent(MainActivity.this, TargetActivity.class);
					startActivity(intent);
					return true;
				}
				return super.shouldOverrideUrlLoading(view, url);
			}
		});
	}
}

TargetActivity很简单:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.target);
    }

第三步,启动Android示例程序, 运行效果如图

相关代码请 点击  WebView_jsp页面跳转到原生Activity

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值