WebView 简单使用一

webView中首先修改添加

Mainfest文件中的

<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"/>

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://www.baidu.com/";
    private WebView webView;
    private ProgressDialog dialog; //定义ProgressDialog
    @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);
        // WebView加载本地资源
        // webView.loadUrl("file:///android_asset/example.html");
        // WebView加载web资源
        webView.loadUrl(url);
        // 覆盖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);//创建ProgressDialog对象
                    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);
    }

}

用的进度条显示加载进度。

如果从

时间: 2024-10-13 22:53:43

WebView 简单使用一的相关文章

Android WebView简单应用

WebView是View的一个子类,可以让你在activity中显示网页.在布局中拉入一个WebView,一个Button,一个EditText 布局代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="ma

【安卓开发】Webview简单使用

什么是WebView? 答:Android内置webkit内核的高性能浏览器,而WebView则是在这个基础上进行封装后的一个 控件,WebView直译网页视图,我们可以简单的看作一个可以嵌套到界面上的一个浏览器控件! 方法: 1.先在activity_main.xml中添加一个webview网络视图,并把id改为“webview” 2.在MainActivity中加入以下代码: import android.os.Bundle; import android.webkit.WebView; i

WebView简单使用

public class MainActivity extends Activity { WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView)findViewById(R.id.webview); //

android WebView 简单使用Demo

activity配置文件:activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >

webView(简单的浏览器)

1 #import "MJViewController.h" 2 3 @interface MJViewController () <UISearchBarDelegate, UIWebViewDelegate> 4 5 @property (weak, nonatomic) IBOutlet UIWebView *webView; 6 @property (weak, nonatomic) IBOutlet UIBarButtonItem *backButton; 7 @

WebView简单实用讲解

AdroidManifest.XML文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:backg

安卓高级 WebView的使用到 js交互

我们先来学习 怎么使用再到用js和安卓源生方法交互 WebView简单使用 此部分转载并做了补充 原博客 原因:比较简单不是很想在写,我只要写js交互部分 WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要处理解析,渲染网页等浏览器做的事情 setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站ti

webview加载js图形报表

在项目中经常会有一些图形报表的功能,对于android的图形报表的实现,可以利用一些开源的android图形报表框架如:achartengine,hellocharts, MPAndroidChar等,这些框架虽然实现的很好,但在实际项目我们需要的图形报表是有设计师设计的,可能我们需要效果这些框架没有提供,或是提供的样式不符合我们的需求,这时候需要我们去修改这些框架,更改它的样式,这就要求我们需要熟悉这些框架的源码,能够举一反三的去修改它,然而说起来简单, 真正改起来并不容易,当然我们也可以自定

Android——网络编程

WebView简单体验——可内嵌在应用程序的浏览器 WebView是一个封装了网络请求,数据解析的这么一个控件,可作为程序的内置浏览器使用 注意声明网络访问权限:android.permission.INTERNET 1 <WebView 2 android:id="@+id/webview" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent&quo