zoukankan      html  css  js  c++  java
  • 安卓开发--WebView

    package com.zhangxi.test01;

    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.os.Bundle;
    import android.os.Process;
    import android.view.KeyEvent;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.webkit.WebChromeClient;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;


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

    webView=(WebView) findViewById(R.id.webView1);
    webView.loadUrl("http://sports.163.com");
    //设置WebView视图
    webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    // TODO 自动生成的方法存根
    //return super.shouldOverrideUrlLoading(view, url);
    view.loadUrl(url);
    return true;
    }
    });
    //设置javascript可用
    WebSettings webSettings=webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    //优先使用缓存
    webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    //不使用缓存WebSettings.LOAD_NO_CACHE
    //webView.setOnKeyListener(this);
    webView.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
    // TODO 自动生成的方法存根
    super.onProgressChanged(view, newProgress);
    if (newProgress==100) {
    closeDialog();
    } else {
    openDialog(newProgress);//正在打开网页
    }
    }

    private void closeDialog() {
    // TODO 自动生成的方法存根
    //dialog不等于空 并且 dialog正在显示
    if(dialog != null && dialog.isShowing()){
    dialog.dismiss();//取消显示
    dialog=null;//对象设置为空
    }
    }

    private void openDialog(int newProgress) {
    // TODO 自动生成的方法存根
    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) {
    if(keyCode==KeyEvent.KEYCODE_BACK)
    {
    if(webView.canGoBack()){
    webView.goBack();
    return true;
    }
    else{
    System.exit(0);
    }
    }
    // TODO 自动生成的方法存根
    return super.onKeyDown(keyCode, event);
    //return false;
    }

    }

  • 相关阅读:
    如何通过命令行窗口查看sqlite数据库文件
    eclipse自动补全的设置
    文本装饰
    注释和特殊符号
    文本装饰
    网页背景
    通过ArcGIS Server admin 查看和删除已注册的 Web Adaptor
    通过 ArcGIS Server Manager 查看已安装的 Web Adaptor
    通过 ArcGIS Server Manager 验证 DataStore
    Windows上安装ArcGIS Enterprise——以 Windows Server 2012 R2上安装 ArcGIS 10.8为例
  • 原文地址:https://www.cnblogs.com/zxcnn/p/5014447.html
Copyright © 2011-2022 走看看