第一次提交

This commit is contained in:
xuhuixiang
2025-02-06 17:39:24 +08:00
parent 44d57f0c11
commit 1bebdc1954
1921 changed files with 68401 additions and 88 deletions

View File

@@ -0,0 +1,568 @@
package com.web.dmcslot;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.DownloadManager;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.DownloadListener;
import android.webkit.ValueCallback;
import com.just.agentweb.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import com.just.agentweb.WebViewClient;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import java.util.HashMap;
import java.util.Map;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import com.just.agentweb.AgentWeb;
//import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
//import com.tencent.smtt.sdk.DownloadListener;
//import com.tencent.smtt.sdk.URLUtil;
//import com.tencent.smtt.sdk.ValueCallback;
//import com.tencent.smtt.sdk.WebChromeClient;
//import com.tencent.smtt.sdk.WebSettings;
//import com.tencent.smtt.sdk.WebView;
//import com.tencent.smtt.sdk.WebViewClient;
public class MainActivity3 extends AppCompatActivity {
LinearLayout webView;
ImageView show_top_v;
ImageView menu_iv;
private ImageView helpIv;
private LinearLayout showTopLy;
String downloadImageUrl = "";
private int requestCode;
private String[] permissions;
private int[] grantResults;
private View topVvvv;
private int index = 0;
private FrameLayout videoContainer;
private ImageView backIv;
private ProgressBar progressBar;
AgentWeb mAgentWeb;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().setNavigationBarColor(getColor(R.color.white));
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
super.onCreate(savedInstanceState);
View decor = getWindow().getDecorView();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
setContentView(R.layout.activity_main3);
initView();
// setopHeight();
findViewById(R.id.back_iv).setOnClickListener(view -> onBackPressed());
}
public void hideStatusBar(Activity activity) {
if (activity == null) return;
Window window = activity.getWindow();
if (window == null) return;
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
WindowManager.LayoutParams lp = window.getAttributes();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
}
window.setAttributes(lp);
}
@Override
public void onBackPressed() {
// if (mAgentWeb.canGoBack()) {//当webview有多级能返回的时候
// // 在首页 就退出这个页面
// if (webView.getUrl().equals(url + "index") || webView.getUrl().equals(url + "/index")) {
//
// Intent intent = new Intent(this, MainActivity.class);
// startActivity(intent);
// super.onBackPressed();
// } else { //不在首页 回到首页
// if (webView.getUrl().equals(url + "index") || webView.getUrl().equals(url + "/index")) {
// isAtGame = false;
// }
// topVvvv.setVisibility(View.GONE);
// progressBar.setVisibility(View.VISIBLE);
// webView.loadUrl(url);
// }
// } else {//不能返回了
//
// //返回计算器
// Intent intent = new Intent(this, MainActivity.class);
// startActivity(intent);
//// }
super.onBackPressed();
// }
}
/**
* 修改图标和名称的方法
*/
public void changeIcon() {
PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(new ComponentName(
this,
"com.web.dmcslot.MainActivity"),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
Log.d("TAG", "换Test的图标");
pm.setComponentEnabledSetting(new ComponentName(
this,
"com.web.dmcslot.MainActivityNew"),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
private void setopHeight() {
RelativeLayout.LayoutParams linearParams = (RelativeLayout.LayoutParams) topVvvv.getLayoutParams(); //取控件textView当前的布局参数
linearParams.height = getStatusBarHeight();// 控件的宽强制设成30
topVvvv.setLayoutParams(linearParams);
}
//https://m.xiannvtu.com/
public static String url = "http://winway33.com/";
// https://telegram.2ltop.com/url.json?rand=111111111
//先定义
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE"};
//然后通过一个函数来申请
public static void verifyStoragePermissions(Activity activity) {
// 没有写的权限,去申请写的权限,会弹出对话框
ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
}
@SuppressLint({"NewApi", "WrongConstant"})
protected void initView() {
topVvvv = (View) findViewById(R.id.top_vvvv);
webView = findViewById(R.id.webview);
show_top_v = findViewById(R.id.show_top_v);
showTopLy = findViewById(R.id.show_top_ly);
videoContainer = (FrameLayout) findViewById(R.id.videoContainer);
// topVvvvf = (RelativeLayout) findViewById(R.id.top_vvvvf);
// topVvvv1 = (StatusLayout) findViewById(R.id.top_vvvv1);
backIv = (ImageView) findViewById(R.id.back_iv);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
// WebSettings settings = webView.getSettings();
// settings.setDomStorageEnabled(true);
// settings.setAppCacheEnabled(true);
// settings.setCacheMode(WebSettings.LOAD_DEFAULT);
// settings.setJavaScriptEnabled(true);
// settings.setLoadWithOverviewMode(true);
// // 设置允许访问文件数据
// settings.setAllowFileAccess(true);
// settings.setAllowContentAccess(true);
// settings.setDatabaseEnabled(true);
// settings.setSavePassword(false);
// settings.setSaveFormData(false);
// settings.setUseWideViewPort(true);
// settings.setBuiltInZoomControls(true);
// settings.setPluginState(WebSettings.PluginState.ON);
// settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
// webView.setFocusable(true);
// webView.setFocusableInTouchMode(true);
// webView.getSettings().setSupportMultipleWindows(true);
//
// settings.setSupportZoom(false);
// webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
//// webView.setHorizontalScrollbarOverlay(true);
// webView.setHorizontalScrollBarEnabled(true);
// webView.requestFocus();
//// webView.setBackgroundColor(getColor(R.color.black));
// settings.setJavaScriptCanOpenWindowsAutomatically(true);
//
// // 设置在WebView内部是否允许通过file url加载的 Js代码读取其他的本地文件
// // Android 4.1前默认允许4.1后默认禁止
// settings.setAllowFileAccessFromFileURLs(true);
// // 设置WebView内部是否允许通过 file url 加载的 Javascript 可以访问其他的源(包括http、https等源)
// // Android 4.1前默认允许4.1后默认禁止
// settings.setAllowUniversalAccessFromFileURLs(true);
//
//
// webView.setWebChromeClient(webChromeClient);
// webView.setWebViewClient(webViewClient);
// Log.i("XHXDEBUG", "XHXDEBUGURL:::" + url);
//
//// new Handler().postDelayed(() -> showTopLy.setVisibility(View.GONE), 3000);
//// verifyStoragePermissions(this);
//
// webView.setDownloadListener(new DownloadListener() {
// @Override
// public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) {
// LogUtils.i("URL是啥onDownloadStart" + url);
//
// try {
// Intent intent = new Intent();
// intent.setAction(Intent.ACTION_VIEW);
// intent.setData(Uri.parse(url));
// startActivity(intent);
// } catch (Exception e) {
// e.printStackTrace();
// }
//
// }
// });
getNetUrl();
}
public void getNetUrl(){
// Api.getInstance().geUrl(System.currentTimeMillis())
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(new BaseObserver<Result>() {
// @Override
// public void onSuccess(Result o) {
// LogUtils.i("URL是啥获取的文件地址"+o.url);
// if(!TextUtils.isEmpty(o.url)){
// MainActivity.saveString(MainActivity3.this,"base_url",o.url);
// url = MainActivity.getString(MainActivity3.this, "base_url", url);
// toUrl(url);
// }
// }
//
// @Override
// public void onError(int code, String msg) {
// url = MainActivity.getString(MainActivity3.this, "base_url", url);
// toUrl(url);
// }
// });
}
private void toUrl(String url) {
mAgentWeb = AgentWeb.with(this)
.setAgentWebParent( webView, new LinearLayout.LayoutParams(-1, -1))
.useDefaultIndicator()
.setWebViewClient(webViewClient)
.setWebChromeClient(webChromeClient)
.createAgentWeb()
.ready()
.go(url);
}
WebViewClient webViewClient = new WebViewClient() {
@Override
public void onPageFinished(WebView webView, String s) {
super.onPageFinished(webView, s);
LogUtils.i("URL是啥加载完成" + webView.getUrl());
int w = View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED);
// 重新测量
webView.measure(w, h);
showTopLy.setVisibility(View.GONE);
if (webView.getUrl().equals(url + "index") || webView.getUrl().equals(url + "/index")) {
isAtGame = false;
topVvvv.setVisibility(View.GONE);
} else {
if (isAtGame) {
topVvvv.setVisibility(View.VISIBLE);
} else {
topVvvv.setVisibility(View.GONE);
}
}
}
// @Override
// public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
// super.onReceivedError(view, request, error);
// if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// int errorCode = error.getErrorCode();
// String errorMessage = error.getDescription().toString();
// Log.i("CustomWebViewClient", "onReceivedError errorCode : " + errorCode + " errorMessage : " + errorMessage);
// }
// progressBar.setVisibility(View.GONE);
// }
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
Log.i("CustomWebViewClient", "onReceivedError errorCode : " + errorCode + " description : " + description);
}
progressBar.setVisibility(View.GONE);
}
// @Override
// public boolean shouldOverrideUrlLoading(WebView webView, String s) {
// LogUtils.i("URL是啥"+s);
// return super.shouldOverrideUrlLoading(webView, s);
// }
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url1) {
LogUtils.i("URL是啥" + url1);
if (url1.equals(url + "index") || url1.equals(url + "/index")) {
isAtGame = false;
topVvvv.setVisibility(View.GONE);
}else{
progressBar.setVisibility(View.VISIBLE);
}
if (!(url1.startsWith("http") || url1.startsWith("https"))) {
try {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url1));
startActivity(intent);
return true;
} catch (Exception e) {
e.printStackTrace();
}
} else {
//其它的该怎么处理就怎么处理
webView.loadUrl(url1);
return true;
}
return true;
}
};
boolean isAtGame = false;
// String uuid = "", uuid1 = "";
private static final int REQUEST_CODE_FILE_CHOOSER = 1;
private ValueCallback<Uri> mUploadCallbackForLowApi;
private ValueCallback<Uri[]> mUploadCallbackForHighApi;
WebChromeClient webChromeClient = new WebChromeClient() {
// @Override
// public boolean onCreateWindow(WebView webViewdd, boolean b, boolean b1, Message resultMsg) {
// LogUtils.i("URL是啥onCreateWindow" + webViewdd.getUrl());
//
// WebView newWebView = new WebView(MainActivity3.this);
// newWebView.setWebViewClient(new WebViewClient() {
// @Override
// public boolean shouldOverrideUrlLoading(WebView view, String url) {
// isAtGame = true;
// mAgentWeb.getUrlLoader().loadUrl(url);
// return true;
// }
// });
// return true;
// }
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
return super.onCreateWindow(view, isDialog, isUserGesture, resultMsg);
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
// 更新进度条的进度
progressBar.setProgress(newProgress);
// 如果加载完成,隐藏进度条
if (newProgress == 100) {
progressBar.setVisibility(View.GONE);
} else {
progressBar.setVisibility(View.VISIBLE);
}
}
};
@RequiresApi(api = Build.VERSION_CODES.Q)
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_CODE_FILE_CHOOSER:
if (resultCode == RESULT_OK || resultCode == RESULT_CANCELED) {
afterFileChooseGoing(resultCode, data);
}
break;
}
}
/**
* onActivityResult方法
*/
private void afterFileChooseGoing(int resultCode, Intent data) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (mUploadCallbackForHighApi == null) {
return;
}
mUploadCallbackForHighApi.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, data));
mUploadCallbackForHighApi = null;
} else {
if (mUploadCallbackForLowApi == null) {
return;
}
Uri result = data == null ? null : data.getData();
mUploadCallbackForLowApi.onReceiveValue(result);
mUploadCallbackForLowApi = null;
}
}
public class JavaScriptinterface {
Context context;
public JavaScriptinterface(Context c) {
context = c;
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case REQUEST_EXTERNAL_STORAGE:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
}
break;
default:
break;
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
/**
* 设置网页中图片的点击事件
*
* @param view
*/
public static void setWebImageClick(WebView view, String method) {
}
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
//
// if (keyCode == KeyEvent.KEYCODE_BACK) {
//
// if (webView.canGoBack()) {
// webView.goBack();
// return true;
// } else {
// return super.onKeyDown(keyCode, event);
//
// }
//
// }
// return super.onKeyDown(keyCode, event);
// }
@Override
public void onDestroy() {
if (webView != null) {
//加载null内容
// webView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
// //清除历史记录
// webView.clearHistory();
//移除WebView
// ((ViewGroup) webView.getParent()).removeView(webView);
//销毁VebView
mAgentWeb.destroy();
}
super.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
/**
* 获取状态栏高度
*
* @return
*/
public int getStatusBarHeight() {
int result = 0;
//获取状态栏高度的资源id
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
//wp-caption alignnone
}