导航菜单

页面标题

页面副标题

新暖心缘 v8.1.1 - CommonWebViewActivity.java 源代码

正在查看: 新暖心缘 v8.1.1 应用的 CommonWebViewActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.luanxingyuan.app.activity;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.DownloadListener;
import android.webkit.JavascriptInterface;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import butterknife.BindView;
import com.faceunity.wrapper.faceunity;
import com.luanxingyuan.app.base.BaseActivity;
import com.tencent.open.SocialConstants;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class CommonWebViewActivity extends BaseActivity {

    @BindView
    ProgressBar mProgressBar;

    @BindView
    WebView mWebView;
    private WebViewClient webViewClient = new b();
    private WebChromeClient webChromeClient = new c();

    class a implements DownloadListener {

        class C0073a extends m3.c<Bitmap> {
            C0073a() {
            }

            @Override
            public void onResourceReady(Bitmap bitmap, n3.d<? super Bitmap> dVar) {
                try {
                    FileOutputStream fileOutputStream = new FileOutputStream(new File(CommonWebViewActivity.this.getFilesDir(), "/test.jpg"));
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
                    fileOutputStream.flush();
                    fileOutputStream.close();
                    CommonWebViewActivity.this.mWebView.loadUrl("file:///" + CommonWebViewActivity.this.getFilesDir() + "/test.jpg");
                } catch (FileNotFoundException e8) {
                    throw new RuntimeException(e8);
                } catch (IOException e9) {
                    throw new RuntimeException(e9);
                }
            }

            @Override
            public void onLoadCleared(Drawable drawable) {
            }
        }

        a() {
        }

        @Override
        public void onDownloadStart(String str, String str2, String str3, String str4, long j8) {
            if (str == null || TextUtils.isEmpty(str)) {
                return;
            }
            if (str.endsWith("jpg") || str.endsWith("png") || str.endsWith("JPEG") || str.endsWith("PNG") || str.endsWith("jpeg")) {
                com.bumptech.glide.b.x(CommonWebViewActivity.this).b().N0(str).D0(new C0073a());
            }
        }
    }

    class b extends WebViewClient {
        b() {
        }

        @Override
        public void onPageFinished(WebView webView, String str) {
            ProgressBar progressBar = CommonWebViewActivity.this.mProgressBar;
            if (progressBar != null) {
                progressBar.setVisibility(8);
            }
        }

        @Override
        public void onPageStarted(WebView webView, String str, Bitmap bitmap) {
            ProgressBar progressBar = CommonWebViewActivity.this.mProgressBar;
            if (progressBar != null) {
                progressBar.setVisibility(0);
            }
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String str) {
            return super.shouldOverrideUrlLoading(webView, str);
        }
    }

    class c extends WebChromeClient {
        c() {
        }

        @Override
        public boolean onJsAlert(WebView webView, String str, String str2, JsResult jsResult) {
            AlertDialog.Builder builder = new AlertDialog.Builder(webView.getContext());
            builder.setMessage(str2).setPositiveButton("确定", (DialogInterface.OnClickListener) null);
            builder.setCancelable(false);
            builder.create().show();
            jsResult.confirm();
            return true;
        }

        @Override
        public void onProgressChanged(WebView webView, int i8) {
            ProgressBar progressBar = CommonWebViewActivity.this.mProgressBar;
            if (progressBar != null) {
                progressBar.setProgress(i8);
            }
        }

        @Override
        public void onReceivedTitle(WebView webView, String str) {
            super.onReceivedTitle(webView, str);
        }
    }

    public static void start(Context context, String str, String str2) {
        Intent intent = new Intent(context, (Class<?>) CommonWebViewActivity.class);
        intent.putExtra("title", str);
        intent.putExtra(SocialConstants.PARAM_URL, str2);
        if (!(context instanceof Activity)) {
            intent.addFlags(faceunity.FUAITYPE_HUMAN_PROCESSOR_DETECT);
        }
        context.startActivity(intent);
    }

    @JavascriptInterface
    public void getClient(String str) {
        StringBuilder sb = new StringBuilder();
        sb.append("html调用客户端:");
        sb.append(str);
    }

    @Override
    protected View getContentView() {
        return inflate(2131492916);
    }

    @Override
    protected void onContentAdded() {
        setTitle(getIntent().getStringExtra("title"));
        String stringExtra = getIntent().getStringExtra(SocialConstants.PARAM_URL);
        WebSettings settings = this.mWebView.getSettings();
        settings.setAllowFileAccess(true);
        settings.setSupportZoom(true);
        settings.setBuiltInZoomControls(true);
        settings.setUseWideViewPort(true);
        settings.setSupportMultipleWindows(false);
        settings.setAppCacheEnabled(true);
        settings.setCacheMode(-1);
        settings.setDisplayZoomControls(false);
        settings.setDomStorageEnabled(true);
        settings.setJavaScriptEnabled(true);
        settings.setGeolocationEnabled(true);
        settings.setAppCacheMaxSize(Long.MAX_VALUE);
        settings.setAppCachePath(getDir("appcache", 0).getPath());
        settings.setDatabasePath(getDir("databases", 0).getPath());
        settings.setGeolocationDatabasePath(getDir("geolocation", 0).getPath());
        settings.setPluginState(WebSettings.PluginState.ON_DEMAND);
        settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        settings.setLoadWithOverviewMode(true);
        settings.setAllowFileAccessFromFileURLs(true);
        settings.setAllowContentAccess(true);
        settings.setAllowUniversalAccessFromFileURLs(true);
        this.mWebView.addJavascriptInterface(this, "android");
        this.mWebView.setWebChromeClient(this.webChromeClient);
        this.mWebView.setWebViewClient(this.webViewClient);
        this.mWebView.loadUrl(stringExtra);
        this.mWebView.setDownloadListener(new a());
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        WebView webView = this.mWebView;
        if (webView != null) {
            webView.destroy();
            this.mWebView = null;
        }
        if (this.webChromeClient != null) {
            this.webChromeClient = null;
        }
        if (this.webViewClient != null) {
            this.webViewClient = null;
        }
    }

    @Override
    public boolean onKeyDown(int i8, KeyEvent keyEvent) {
        if (!this.mWebView.canGoBack() || i8 != 4) {
            return super.onKeyDown(i8, keyEvent);
        }
        this.mWebView.goBack();
        return true;
    }
}