zoukankan      html  css  js  c++  java
  • android之WebView 细节

    package com.example.huadong;

    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.view.GestureDetector;
    import android.view.GestureDetector.OnGestureListener;
    import android.view.KeyEvent;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.View.OnTouchListener;
    import android.view.animation.AnimationUtils;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.ImageButton;
    import android.widget.Toast;
    import android.widget.ViewFlipper;

    /**
     * ViewFlipperTest.java
     * @author Cloay
     * 2011-6-24
     */
    public class MainActivity extends Activity  {
     
    private WebView webView=null;
    private AlertDialog alertDialog;//添加进度条
    private ProgressDialog progressBar;

     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      
      initWebView();
     

     
        
      
     }
     
     
      class MyWebViewClient extends WebViewClient{

             @Override
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 view.loadUrl(url);
                 return true;
             }

             @Override
             public void onPageFinished(WebView view, String url) {
                 if(progressBar.isShowing()){
                     progressBar.dismiss();
                 }
             }

             @Override
             public void onReceivedError(WebView view, int errorCode,
                     String description, String failingUrl) {
                 Toast.makeText(MainActivity.this, "网页加载出错!", Toast.LENGTH_LONG);
                
                 alertDialog.setTitle("ERROR");
                 alertDialog.setMessage(description);
                 alertDialog.setButton("OK", new DialogInterface.OnClickListener(){
                     public void onClick(DialogInterface dialog, int which) {
                         // TODO Auto-generated method stub
                     }
                 });
                 alertDialog.show();
             }
            
            
            
         }
        
         protected void initWebView(){
             //设计进度条
             progressBar = ProgressDialog.show(MainActivity.this, null, "正在进入网页,请稍后…");
             //获得WebView组件
             webView = (WebView) this.findViewById(R.id.webText);
            
             webView.getSettings().setJavaScriptEnabled(true);
            
          webView.getSettings().setDefaultTextEncodingName("gbk");
             webView.getSettings().setUseWideViewPort(true);
            
             webView.getSettings().setLoadWithOverviewMode(true);

       //webView.loadUrl("file:///android_asset/demo1.html");
             webView.loadUrl("http://wap.people.com.cn/");
       
             alertDialog = new AlertDialog.Builder(this).create();
            
             //设置视图客户端
             webView.setWebViewClient(new MyWebViewClient());
         }

     
     
     
     public boolean onKeyDown(int keyCode, KeyEvent event) {      
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {      
                webView.goBack();      
                       return true;      
            }      
            return super.onKeyDown(keyCode, event);      
        }    

      
    }

  • 相关阅读:
    Linux中Elasticsearch集群部署
    在.net core 项目中添加swagger支持
    ASP.NET Core 类库中取读配置文件
    Redis的服务安装步骤
    Lambda表达式多表连接的左连
    Angular7 学习资料
    Docker在eShopOnContainer项目中的使用方法
    绘图工具
    万能分页存储过程(SQL Server)
    为什么程序开发人员这么累?
  • 原文地址:https://www.cnblogs.com/wangheblog/p/3038726.html
Copyright © 2011-2022 走看看