正在查看: 逼多多 v3.6.2 应用的 CommonWebActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 逼多多 v3.6.2 应用的 CommonWebActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.juneRain.jy.commonlib.ui.activity.web;
import android.R;
import android.app.Activity;
import android.app.DownloadManager;
import android.content.BroadcastReceiver;
import android.content.ClipData;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Message;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.webkit.DownloadListener;
import android.webkit.JavascriptInterface;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.SslErrorHandler;
import android.webkit.URLUtil;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import com.bumptech.glide.load.Key;
import com.juneRain.jy.baselib.utils.ToastUtil;
import com.juneRain.jy.baselib.utils.g;
import com.juneRain.jy.baselib.utils.h;
import com.juneRain.jy.baselib.utils.j;
import com.juneRain.jy.bean.pub.CommonTypes;
import com.juneRain.jy.commonlib.R$color;
import com.juneRain.jy.commonlib.R$id;
import com.juneRain.jy.commonlib.R$layout;
import com.juneRain.jy.commonlib.R$string;
import com.juneRain.jy.commonlib.ui.activity.BaseActivity;
import com.juneRain.jy.viewmodel.HomeViewModel;
import java.io.File;
import p0.a;
public class CommonWebActivity extends BaseActivity implements View.OnClickListener {
protected FrameLayout A;
protected String B;
protected WebViewClient E;
protected c F;
public WebView y;
protected ProgressBar z;
protected boolean C = false;
protected boolean D = true;
private boolean G = true;
class a implements DownloadListener {
class C0003a extends BroadcastReceiver {
final long a;
C0003a(long j) {
this.a = j;
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.DOWNLOAD_COMPLETE") && intent.getLongExtra("extra_download_id", -1L) == this.a) {
ToastUtil.a("下载完成");
CommonWebActivity.this.v().unregisterReceiver(this);
}
}
}
a() {
}
@Override
public void onDownloadStart(String str, String str2, String str3, String str4, long j) {
if (str.startsWith("data:")) {
ToastUtil.a("开始下载图片");
com.juneRain.jy.baselib.utils.c.a(h.a(), str, str3, str4);
ToastUtil.a("图片已保存到相册");
return;
}
if (str.startsWith("http")) {
String W = CommonWebActivity.W(str, str3, str4);
if (W.endsWith(".bin")) {
String[] split = str4.split("/");
if (split.length == 2 && !split[1].equals("*")) {
W = W.substring(0, W.length() - 3) + split[1];
}
}
File c = g.c(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/" + W));
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(str));
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, c.getName());
request.setNotificationVisibility(1);
request.setTitle("文件下载");
request.setDescription("正在下载:" + c.getName());
DownloadManager downloadManager = (DownloadManager) CommonWebActivity.this.getSystemService(HomeViewModel.click_download);
ToastUtil.a("开始下载");
BroadcastReceiver c0003a = new C0003a(downloadManager.enqueue(request));
if (Build.VERSION.SDK_INT >= 33) {
m0.a.a(CommonWebActivity.this.v(), c0003a, new IntentFilter("android.intent.action.DOWNLOAD_COMPLETE"), 4);
} else {
CommonWebActivity.this.v().registerReceiver(c0003a, new IntentFilter("android.intent.action.DOWNLOAD_COMPLETE"));
}
}
}
}
class b extends WebViewClient {
b() {
}
@Override
public void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) {
sslErrorHandler.proceed();
}
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String str) {
a.b bVar = CommonWebActivity.this;
if (!str.startsWith("http") && !str.startsWith("https")) {
try {
Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(str));
intent.addCategory("android.intent.category.BROWSABLE");
bVar.startActivity(intent);
return true;
} catch (Exception unused) {
ToastUtil.a(CommonWebActivity.this.getString(R$string.webview_third_app_not_install));
return true;
}
}
String url = webView.getUrl();
if (TextUtils.isEmpty(url) || url.contains(Uri.parse(str).getHost())) {
webView.loadUrl(str);
return true;
}
f0.a.a(CommonWebActivity.this.v(), str);
return true;
}
}
private class c extends WebChromeClient {
public ValueCallback a;
public ValueCallback f67b;
boolean c = false;
private Activity f68d;
public c(Activity activity) {
this.f68d = activity;
}
@Override
public boolean onCreateWindow(WebView webView, boolean z, boolean z2, Message message) {
return super.onCreateWindow(webView, z, z2, message);
}
@Override
public boolean onJsAlert(WebView webView, String str, String str2, JsResult jsResult) {
return super.onJsAlert(webView, str, str2, jsResult);
}
@Override
public boolean onJsConfirm(WebView webView, String str, String str2, JsResult jsResult) {
return super.onJsConfirm(webView, str, str2, jsResult);
}
@Override
public boolean onJsPrompt(WebView webView, String str, String str2, String str3, JsPromptResult jsPromptResult) {
return super.onJsPrompt(webView, str, str2, str2, jsPromptResult);
}
@Override
public void onProgressChanged(WebView webView, int i) {
CommonWebActivity.this.z.setProgress(i);
if (i >= 90 && !this.c) {
this.c = true;
}
if (i == 100) {
CommonWebActivity.this.z.setVisibility(8);
CommonWebActivity.this.t();
}
}
@Override
public void onReceivedTitle(WebView webView, String str) {
super.onReceivedTitle(webView, str);
CommonWebActivity commonWebActivity = CommonWebActivity.this;
if (commonWebActivity.D && commonWebActivity.C) {
commonWebActivity.c.setTitle(str);
}
}
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback valueCallback, WebChromeClient.FileChooserParams fileChooserParams) {
this.f67b = valueCallback;
Intent intent = new Intent("android.intent.action.GET_CONTENT");
intent.addCategory("android.intent.category.OPENABLE");
intent.setType(CommonTypes.mediaTypeImg);
this.f68d.startActivityForResult(Intent.createChooser(intent, "File Chooser"), 1);
return true;
}
}
public class d {
Context a;
d(Context context) {
this.a = context;
}
@JavascriptInterface
public void method(String str, String str2) {
}
}
public static String W(String str, String str2, String str3) {
if (str3.equals("application/octet-stream")) {
str3 = null;
}
return URLUtil.guessFileName(str, str2, str3);
}
@Override
public boolean D() {
return false;
}
@Override
public boolean G() {
return false;
}
@Override
public boolean H() {
return this.D;
}
@Override
public boolean I() {
return this.D;
}
public void T() {
this.y.addJavascriptInterface(new d(this), "appInterface");
}
protected WebViewClient U() {
return new b();
}
protected int V() {
return R$layout.common_web_activity;
}
protected void X() {
this.D = getIntent().getBooleanExtra("hasToolbar", true);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
k0.a.b(this, false);
setContentView(V());
this.y = (WebView) findViewById(R$id.common_web);
this.z = (ProgressBar) findViewById(R$id.web_progress);
this.A = (FrameLayout) findViewById(R$id.float_frame_lay);
boolean booleanExtra = getIntent().getBooleanExtra("enableLongClick", true);
this.G = booleanExtra;
this.y.setLongClickable(booleanExtra);
}
protected void Y() {
Z();
this.y.setHorizontalScrollBarEnabled(false);
this.y.setVerticalScrollBarEnabled(false);
this.y.setScrollBarStyle(33554432);
WebViewClient U = U();
this.E = U;
this.y.setWebViewClient(U);
c cVar = new c(this);
this.F = cVar;
this.y.setWebChromeClient(cVar);
this.y.setDownloadListener(new a());
}
public void Z() {
WebSettings settings = this.y.getSettings();
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setJavaScriptEnabled(true);
settings.setJavaScriptEnabled(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(false);
settings.setDefaultTextEncodingName(Key.STRING_CHARSET_NAME);
settings.setCacheMode(-1);
settings.setAllowFileAccess(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
settings.setUseWideViewPort(true);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
settings.setMixedContentMode(0);
}
public void onActivityResult(int i, int i3, Intent intent) {
super/*androidx.fragment.app.FragmentActivity*/.onActivityResult(i, i3, intent);
if (i == 1) {
if (this.F.a != null) {
Uri data = (intent == null || i3 != -1) ? null : intent.getData();
if (data != null) {
String b2 = g.b(getApplicationContext(), data);
if (b2 != null) {
this.F.a.onReceiveValue(Uri.fromFile(new File(b2)));
} else {
ToastUtil.a(getString(R$string.base_file_open_fail));
}
} else {
this.F.a.onReceiveValue(null);
}
}
ValueCallback valueCallback = this.F.f67b;
if (valueCallback != null) {
if (intent == null || i3 != -1) {
valueCallback.onReceiveValue(null);
} else if (intent.getData() != null) {
this.F.f67b.onReceiveValue(new Uri[]{intent.getData()});
} else if (intent.getClipData() != null) {
ClipData clipData = intent.getClipData();
Uri[] uriArr = new Uri[clipData.getItemCount()];
for (int i4 = 0; i4 < clipData.getItemCount(); i4++) {
uriArr[i4] = clipData.getItemAt(i4).getUri();
}
this.F.f67b.onReceiveValue(uriArr);
} else {
this.F.f67b.onReceiveValue(null);
}
}
c cVar = this.F;
cVar.a = null;
cVar.f67b = null;
}
}
@Override
public void onClick(View view) {
}
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
X();
if (this.D) {
String stringExtra = getIntent().getStringExtra("title");
if (stringExtra == null || stringExtra.isEmpty()) {
this.C = true;
} else {
this.C = false;
this.c.setTitle(stringExtra);
}
}
try {
this.B = getIntent().getExtras().getString("url");
} catch (Exception e) {
e.printStackTrace();
}
Y();
T();
this.y.loadUrl(this.B);
}
@Override
public void onDestroy() {
try {
WebView webView = this.y;
if (webView != null) {
ViewParent parent = webView.getParent();
if (parent != null) {
((ViewGroup) parent).removeView(this.y);
}
this.y.stopLoading();
this.y.getSettings().setJavaScriptEnabled(false);
this.y.clearHistory();
this.y.clearView();
this.y.removeAllViews();
this.y.destroy();
}
} catch (Exception unused) {
}
super.onDestroy();
j.e(this);
j.g();
}
@Override
public boolean onKeyDown(int i, KeyEvent keyEvent) {
if (i != 4 || !this.y.canGoBack()) {
return super.onKeyDown(i, keyEvent);
}
this.y.goBack();
return true;
}
@Override
public int x() {
return R$color.black;
}
@Override
public boolean y() {
return false;
}
@Override
public boolean z() {
return false;
}
}