zoukankan      html  css  js  c++  java
  • Android:WebView(慕课网)

    使用webview最重要的三点:

    1 WebView加载本地资源(webView.loadUrl("file:///android_asset/example.html");)

    2 WebView加载web资源(webView.loadUrl(url);)

    3 覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使得网页可以在WebVIew中打开

    mainactivity:

    package com.imooc.android_webview;
    
    import android.app.Activity;
    import android.app.ActionBar;
    import android.app.Fragment;
    import android.app.ProgressDialog;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.KeyEvent;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.webkit.WebChromeClient;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.Toast;
    import android.os.Build;
    
    public class MainActivity extends Activity {
    
    	private String url = "http://2014.qq.com/";
    	private WebView webView;
        private ProgressDialog dialog;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.web);
    		// Uri uri = Uri.parse(url); //url为你要链接的地址
    		// Intent intent =new Intent(Intent.ACTION_VIEW, uri);
    		// startActivity(intent);
    		init();
    	}
    
    	private void init() {
    		// TODO Auto-generated method stub
    		webView = (WebView) findViewById(R.id.webView);
    		// 1 WebView加载本地资源
    		// webView.loadUrl("file:///android_asset/example.html");
    		// 2 WebView加载web资源
    		webView.loadUrl(url);
    		// 3 覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使得网页可以在WebVIew中打开
    		webView.setWebViewClient(new WebViewClient(){
    			
    			@Override
    			public boolean shouldOverrideUrlLoading(WebView view, String url) {
    				// TODO Auto-generated method stub
    				//返回值是true的时候控制网页在WebView中去打开,如果为false调用系统浏览器或第三方浏览器去打开
    				view.loadUrl(url);
    				return true;
    			}
    			//WebViewClient帮助WebView去处理一些页面控制和请求通知
    			
    		});
    		//启用支持JavaScript
    		WebSettings settings = webView.getSettings();
    		settings.setJavaScriptEnabled(true);
    		//WebView加载页面优先使用缓存加载
    		settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    		webView.setWebChromeClient(new WebChromeClient(){
    			
    			@Override
    			public void onProgressChanged(WebView view, int newProgress) {
    				// TODO Auto-generated method stub
                    //newProgress 1-100之间的整数
    				if(newProgress==100)
    				{
    					//网页加载完毕,关闭ProgressDialog
    					closeDialog();
    				}
    				else
    				{
    					//网页正在加载,打开ProgressDialog
    					openDialog(newProgress);
    				}
    			}
    
    			private void closeDialog() {
    				// TODO Auto-generated method stub
                      if(dialog!=null&&dialog.isShowing())
                      {
                    	     dialog.dismiss();
                    	     dialog=null;
                      }
    			}
    
    			private void openDialog(int newProgress) {
    				// TODO Auto-generated method stub
    				if(dialog==null)
    				{
    					dialog=new ProgressDialog(MainActivity.this);
    					dialog.setTitle("正在加载");
    					dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    					dialog.setProgress(newProgress);
    					dialog.show();
    					
    				}
    				else
    				{
    					dialog.setProgress(newProgress);
    				}
    			
    				
    			}
    		});
    		
    		
    		
    	}
    	
    	//改写物理按键——返回的逻辑
    	@Override
    	public boolean onKeyDown(int keyCode, KeyEvent event) {
    		// TODO Auto-generated method stub
    		if(keyCode==KeyEvent.KEYCODE_BACK)
    		{
    			//Toast.makeText(this, webView.getUrl(), Toast.LENGTH_SHORT).show();
    			if(webView.canGoBack())
    			{
    				webView.goBack();//返回上一页面
    				return true;
    			}
    			else
    			{
    				System.exit(0);//退出程序
    			}
    		}
    		return super.onKeyDown(keyCode, event);
    	}
    	
    	
    }
    

      

  • 相关阅读:
    jquery 序列化form表单
    nginx for windows 安装
    nodejs idea 创建项目 (一)
    spring 配置 shiro rememberMe
    idea 2018 解决 双击shift 弹出 search everywhere 搜索框的方法
    redis 在windows 集群
    spring IOC控制反转和DI依赖注入
    redis 的安装
    shiro 通过jdbc连接数据库
    handlebars的用法
  • 原文地址:https://www.cnblogs.com/Sunnor/p/4707366.html
Copyright © 2011-2022 走看看