• 安卓开发--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;
    }

    }

  • 相关阅读:
    在linux服务器上下载github上的源码
    docker
    使用 vue-cli 搭建项目
    用vue手脚架直接修改.vue文件会报错
    JavaScript ES6中export及export default的区别
    node.js npm install 模块 无反应
    node.js 初级配置
    node.js 配置首页打开页面
    nodejs取得当前执行路径
    初始化bootstrap-fileinput 组件
  • 原文地址:https://www.cnblogs.com/zxcnn/p/5014447.html
Copyright © 2020-2023  润新知