七,webview使用以及相关配置

首先在AndroidManifest.xml中加入网络访问权限

<!--网络访问权限-->
    <uses-permission android:name="android.permission.INTERNET"/>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.administrator.listview">
    <!--网络访问权限-->
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".gridview"></activity>
        <activity android:name=".spinner"></activity>
        <activity android:name=".progressbar"
            android:label="progressBar"></activity>
        <activity android:name=".webview"
            android:label="webview"></activity>
    </application>

</manifest>


建立一个页面webview.xml,加入一个webview

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView
        android:id="@+id/webview_webview1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></WebView>
</android.support.constraint.ConstraintLayout>

建立webview.java

package com.example.administrator.listview;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

/**
 * Created by Administrator on 2018/3/11 0011.
 */

public class webview extends AppCompatActivity{
    private WebView webView;
    private ProgressDialog dialog;
    private String url="https://www.baidu.com/";
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        init();
        //配置webview属性
        upjavaScript();
    }
    //启用javascript
    private void upjavaScript() {
        //启用支持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) {
                //newprogress 1-100之间的整数
                if(newProgress==100)
                {//加载完毕
                    closeDialog();
                }
                else
                {//正在加载
                    openDialog(newProgress);
                }
            }
            private void closeDialog(){
                if (dialog!=null && dialog.isShowing()){
                    dialog.dismiss();
                    dialog=null;
                }
            }
            private void openDialog(int newProgress){
                if(dialog==null){
                    dialog=new ProgressDialog(webview.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){
            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);
    }

    //    初始化
    private void init() {
//        Toast.makeText(this,"webview",1).show();

        webView=findViewById(R.id.webview_webview1);
//        webviwe加载本地资源
//        webView.loadUrl("file:///android_asset");

//        webviwew加载外部资源
        webView.loadUrl(url);
/*
* 通常,是由默认浏览器打开并加载URL的。然而可以在webview 中覆盖这一行为,那么连接就会在webview
* */
        //覆盖默认浏览器打开
        webView.setWebViewClient(new WebViewClient(){
            //返回值是true时,控制网页在webview中打开
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            //webviewClient帮助webview处理一些页面控制和请求通知
        });
    }
}

显示效果




猜你喜欢

转载自blog.csdn.net/qq_38234785/article/details/79516411