正在查看: 小柿子 v1.3.8 应用的 AdSdkH5Activity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 小柿子 v1.3.8 应用的 AdSdkH5Activity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package cn.hzjizhun.admin.h5;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import cn.hzjizhun.admin.ad.bean.NativeAdInfo;
import cn.hzjizhun.admin.ad.impl.NativeAd;
import cn.hzjizhun.admin.ad.listener.NativeAdListener;
import cn.hzjizhun.admin.ad.utils.AdUtil;
import cn.hzjizhun.admin.custom_ad.AdapterCustomSplashAdLoader;
import cn.hzjizhun.admin.exception.AdError;
import cn.hzjizhun.admin.h5.AdSdkH5Helper;
import cn.hzjizhun.admin.util.ALog;
import cn.hzjizhun.admin.util.ReportUtils;
import com.baidu.mobads.sdk.internal.an;
import com.czhj.sdk.common.network.JsonRequest;
import com.czhj.volley.toolbox.HttpHeaderParser;
import com.sjm.sjmdaly.R;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class AdSdkH5Activity extends Activity {
public static final String INFUNCTIONPOSID = "inFunctionPosId";
public static final String ISDOWNLOAD = "isDownload";
public static final String ISOUTFUNCTION = "isOutFunction";
public static final String ISSHOWSUREDIALOG = "isShowSureDialog";
private static final int MSG_DOWNLOAD = 1;
private static final int MSG_DP = 2;
public static final String PKG = "PKG";
public static final String POSPLATNAME = "posPlatName";
public static final String TOUCH_MAJOR = "touch_major";
public static final String TOUCH_MINOR = "touch_minor";
public static final String URL = "url_str";
private boolean isShowingDialog;
private ImageView mBackIv;
private boolean mIsOutFunction;
private boolean mIsShowSureDialog;
private boolean mIsWebDownload;
private String mPkg;
private TextView mTitleTv;
private WebView mWebView;
private MWebChromeClient webChromeClient;
private MWebViewClient webViewClient;
private String TAG = "AdSdkH5Activity.....";
public Map<String, String> extraHeaders = new HashMap();
private float mTouchMinor = 0.0f;
private float mTouchMajor = 0.0f;
private final Handler mWebDownloadHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message message) {
super.handleMessage(message);
try {
int i2 = message.what;
if (i2 == 1) {
AdSdkH5Activity.this.showDownloadDialog(message.obj.toString());
} else if (i2 == 2) {
String obj = message.obj.toString();
final Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
intent.setData(Uri.parse(obj));
intent.setFlags(805339136);
if (intent.resolveActivity(AdSdkH5Activity.this.getPackageManager()) != null) {
if (AdSdkH5Activity.this.mIsShowSureDialog) {
AdSdkH5Helper.showDeeplinkSureDialog(AdSdkH5Activity.this, new AdSdkH5Helper.DialogCallback() {
@Override
public void cancel() {
}
@Override
public void sure() {
AdSdkH5Activity.this.skipOutApp(intent);
}
});
} else {
AdSdkH5Activity.this.skipOutApp(intent);
}
}
}
} catch (Throwable unused) {
}
}
};
public class MWebChromeClient extends WebChromeClient {
private MWebChromeClient() {
}
@Override
public void onReceivedTitle(WebView webView, String str) {
super.onReceivedTitle(webView, str);
AdSdkH5Activity.this.updateTitle(str);
}
}
public class MWebViewClient extends WebViewClient {
private MWebViewClient() {
}
@Override
public void onPageFinished(WebView webView, String str) {
super.onPageFinished(webView, str);
ALog.innerD(AdSdkH5Activity.this.TAG, "onPageFinished: ............." + str);
ReportUtils.getInstance().getReport().h5loadCompleteReport();
if (str.equals(AdSdkH5Activity.this.getIntent().getStringExtra(AdSdkH5Activity.URL))) {
return;
}
ReportUtils.getInstance().getReport().h5CloseReport();
}
@Override
public void onPageStarted(WebView webView, String str, Bitmap bitmap) {
super.onPageStarted(webView, str, bitmap);
AdSdkH5Activity.this.showWebView();
}
@Override
public void onReceivedError(WebView webView, int i2, String str, String str2) {
ALog.innerD(AdSdkH5Activity.this.TAG, "onReceivedError errorCode:" + i2 + ",description:" + str);
super.onReceivedError(webView, i2, str, str2);
}
@Override
@Nullable
@RequiresApi(api = 21)
public WebResourceResponse shouldInterceptRequest(WebView webView, WebResourceRequest webResourceRequest) {
try {
WebResourceResponse resourceResponse = AdSdkH5Activity.this.getResourceResponse(webResourceRequest);
return resourceResponse != null ? resourceResponse : super.shouldInterceptRequest(webView, webResourceRequest);
} catch (Exception unused) {
return super.shouldInterceptRequest(webView, webResourceRequest);
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest webResourceRequest) {
if (Build.VERSION.SDK_INT < 21) {
return super.shouldOverrideUrlLoading(webView, webResourceRequest);
}
if (AdSdkH5Activity.this.overrideUrlLoadingUrl(webResourceRequest.getUrl().toString())) {
return true;
}
return super.shouldOverrideUrlLoading(webView, webResourceRequest);
}
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String str) {
ALog.innerD(AdSdkH5Activity.this.TAG, "shouldOverrideUrlLoading url:" + str);
if (AdSdkH5Activity.this.overrideUrlLoadingUrl(str)) {
return true;
}
return super.shouldOverrideUrlLoading(webView, str);
}
}
public void adClose() {
AdapterCustomSplashAdLoader.AdCloseListener splashAdListener = AdSdkH5Helper.getSplashAdListener();
if (splashAdListener != null) {
splashAdListener.onAdClose();
}
}
@RequiresApi(api = 21)
public WebResourceResponse getResourceResponse(WebResourceRequest webResourceRequest) {
try {
String method = webResourceRequest.getMethod();
String uri = webResourceRequest.getUrl().toString();
if (!method.equals(an.f594c)) {
return null;
}
Map<String, String> requestHeaders = webResourceRequest.getRequestHeaders();
HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(uri).openConnection();
httpURLConnection.setRequestMethod(method);
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.setDoInput(true);
CookieManager cookieManager = CookieManager.getInstance();
String cookie = cookieManager.getCookie(uri);
for (String str : requestHeaders.keySet()) {
httpURLConnection.setRequestProperty(str, requestHeaders.get(str));
}
String str2 = "";
if (!TextUtils.isEmpty(cookie)) {
httpURLConnection.setRequestProperty("Cookie", cookie.replaceAll(getPackageName(), ""));
}
httpURLConnection.setRequestProperty("X-Requested-With", this.mPkg);
httpURLConnection.setInstanceFollowRedirects(true);
httpURLConnection.connect();
if (httpURLConnection.getResponseCode() > 300 && httpURLConnection.getResponseCode() < 400) {
String headerField = httpURLConnection.getHeaderField("Location");
if (!TextUtils.isEmpty(headerField)) {
httpURLConnection.disconnect();
httpURLConnection = interceptRedirect(headerField, webResourceRequest);
}
}
Map<String, List<String>> headerFields = httpURLConnection.getHeaderFields();
HashMap hashMap = new HashMap();
for (String str3 : headerFields.keySet()) {
Iterator<String> it = headerFields.get(str3).iterator();
while (it.hasNext()) {
hashMap.put(str3, it.next());
}
}
List<String> list = headerFields.get("set-cookie");
if (list != null && list.size() > 0) {
for (String str4 : list) {
if (!TextUtils.isEmpty(str4)) {
cookieManager.setCookie(uri, str4.replaceAll(getPackageName(), ""));
}
}
}
if (headerFields.get(HttpHeaderParser.f5372a) != null && headerFields.get(HttpHeaderParser.f5372a).size() > 0) {
String lowerCase = headerFields.get(HttpHeaderParser.f5372a).get(0).toLowerCase();
if (lowerCase.contains(JsonRequest.PROTOCOL_CHARSET)) {
lowerCase = lowerCase.replaceAll("(?i)charset=utf-8", "");
}
if (lowerCase.contains("utf8")) {
lowerCase = lowerCase.replaceAll("(?i)charset=utf8", "");
}
str2 = lowerCase.contains(";") ? lowerCase.replaceAll(";", "").trim() : lowerCase;
}
if (str2.contains(com.baidu.mobads.sdk.internal.a.f519f)) {
loadUrl(uri);
return null;
}
WebResourceResponse webResourceResponse = new WebResourceResponse(str2, "UTF-8", httpURLConnection.getInputStream());
webResourceResponse.setResponseHeaders(hashMap);
return webResourceResponse;
} catch (Exception unused) {
return null;
}
}
private void initTouchParams() {
try {
this.mTouchMinor = n.a.f().d(TOUCH_MINOR);
this.mTouchMajor = n.a.f().d(TOUCH_MAJOR);
} catch (Throwable unused) {
}
}
private void initWebView() {
this.extraHeaders.put("X-Requested-With", this.mPkg);
this.mWebView.setVisibility(8);
this.mWebView.getSettings().setSaveFormData(true);
this.mWebView.getSettings().setDomStorageEnabled(true);
this.mWebView.getSettings().setDatabaseEnabled(true);
this.mWebView.getSettings().setAppCacheEnabled(true);
this.mWebView.getSettings().setJavaScriptEnabled(true);
this.mWebView.getSettings().setCacheMode(-1);
int i2 = Build.VERSION.SDK_INT;
if (i2 >= 19) {
this.mWebView.getSettings().setCacheMode(1);
}
if (i2 >= 17) {
this.mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);
}
if (i2 >= 21) {
this.mWebView.getSettings().setMixedContentMode(0);
}
this.mWebView.setScrollBarStyle(0);
this.mWebView.setFocusable(true);
this.mWebView.setFocusableInTouchMode(true);
this.mWebView.requestFocusFromTouch();
this.mWebView.requestFocus();
this.webViewClient = new MWebViewClient();
this.webChromeClient = new MWebChromeClient();
this.mWebView.setDownloadListener(null);
this.mWebView.setWebViewClient(this.webViewClient);
this.mWebView.setWebChromeClient(this.webChromeClient);
}
private HttpURLConnection interceptRedirect(String str, WebResourceRequest webResourceRequest) {
URL url = new URL(str);
int i2 = Build.VERSION.SDK_INT;
Map<String, String> requestHeaders = i2 >= 21 ? webResourceRequest.getRequestHeaders() : null;
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
if (i2 >= 21) {
httpURLConnection.setRequestMethod(webResourceRequest.getMethod());
}
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.setDoInput(true);
String cookie = CookieManager.getInstance().getCookie(str);
for (String str2 : requestHeaders.keySet()) {
httpURLConnection.setRequestProperty(str2, requestHeaders.get(str2));
}
if (!TextUtils.isEmpty(cookie)) {
httpURLConnection.setRequestProperty("Cookie", cookie.replaceAll(getPackageName(), ""));
}
httpURLConnection.setRequestProperty("X-Requested-With", this.mPkg);
httpURLConnection.setInstanceFollowRedirects(false);
httpURLConnection.connect();
return (httpURLConnection.getResponseCode() <= 300 || httpURLConnection.getResponseCode() >= 400) ? httpURLConnection : interceptRedirect(httpURLConnection.getHeaderField("Location"), webResourceRequest);
}
private void loadUrl(String str) {
WebView webView = this.mWebView;
if (webView == null || str == null) {
return;
}
webView.loadUrl(str, this.extraHeaders);
}
public boolean overrideUrlLoadingUrl(String str) {
try {
if (!TextUtils.isEmpty(str)) {
if (!str.startsWith("http")) {
Message obtain = Message.obtain();
obtain.what = 2;
obtain.obj = str;
this.mWebDownloadHandler.sendMessage(obtain);
return true;
}
if (str.endsWith(".apk") && this.mIsWebDownload) {
Message obtain2 = Message.obtain();
obtain2.what = 1;
obtain2.obj = str;
this.mWebDownloadHandler.sendMessage(obtain2);
ReportUtils.getInstance().getReport().h5ActionReport(1);
return true;
}
ALog.innerD(this.TAG, "overrideUrlLoadingUrl: ............." + str);
loadUrl(str);
ReportUtils.getInstance().getReport().h5ActionReport(0);
return true;
}
} catch (Throwable unused) {
}
return false;
}
public void showDownloadDialog(final String str) {
if (this.isShowingDialog) {
return;
}
this.isShowingDialog = true;
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.BwtDownloadAlertDialogStyle);
builder.setTitle("是否下载应用");
builder.setCancelable(true);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
AdSdkH5Activity.this.skipBrowserDownload(str);
dialogInterface.dismiss();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
dialogInterface.dismiss();
}
});
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
AdSdkH5Activity.this.isShowingDialog = false;
}
});
builder.show();
}
private void showInsertScreenAd() {
String stringExtra = getIntent().getStringExtra(INFUNCTIONPOSID);
NativeAd nativeAd = new NativeAd(this);
nativeAd.setAdId(stringExtra);
nativeAd.setInFunctionAd(true);
nativeAd.setAdListener(new NativeAdListener() {
@Override
public void onAdClick(NativeAdInfo nativeAdInfo) {
}
@Override
public void onAdClick(NativeAdInfo nativeAdInfo, String str) {
}
@Override
public void onAdClose(NativeAdInfo nativeAdInfo) {
}
@Override
public void onAdExpose(NativeAdInfo nativeAdInfo) {
}
@Override
public void onAdFailed(AdError adError) {
}
@Override
public void onAdReceive(List<NativeAdInfo> list) {
try {
AdUtil.showNativeAdConvenient(AdSdkH5Activity.this, list.get(0), true, this);
} catch (Throwable unused) {
}
}
@Override
public void onRenderFailed(NativeAdInfo nativeAdInfo, AdError adError) {
}
});
nativeAd.loadAd();
}
public void showWebView() {
WebView webView = this.mWebView;
if (webView != null) {
webView.setVisibility(0);
}
}
public void skipBrowserDownload(String str) {
try {
Intent intent = new Intent("android.intent.action.VIEW");
intent.setData(Uri.parse(str));
intent.setFlags(805339136);
startActivity(intent);
ReportUtils.getInstance().getReport().h5ActionReport(1);
} catch (Throwable unused) {
}
}
public void skipOutApp(Intent intent) {
try {
startActivity(intent);
ReportUtils.getInstance().getReport().deepLinkSuccessReport();
ReportUtils.getInstance().getReport().h5ActionReport(2);
} catch (Throwable unused) {
}
}
public void updateTitle(String str) {
if (str != null) {
this.mTitleTv.setText(str);
}
}
@Override
public boolean dispatchTouchEvent(MotionEvent motionEvent) {
try {
if (this.mTouchMinor == 0.0f || this.mTouchMajor == 0.0f) {
this.mTouchMinor = motionEvent.getTouchMinor();
this.mTouchMajor = motionEvent.getTouchMajor();
n.a.f().g(TOUCH_MINOR, this.mTouchMinor);
n.a.f().g(TOUCH_MAJOR, this.mTouchMinor);
}
} catch (Throwable unused) {
}
return super.dispatchTouchEvent(motionEvent);
}
@Override
public void onBackPressed() {
WebView webView;
try {
webView = this.mWebView;
} catch (Throwable unused) {
}
if (webView != null && webView.canGoBack()) {
this.mWebView.goBack();
} else {
adClose();
super.onBackPressed();
}
}
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_ad_sdk_h5);
if (getIntent() == null) {
adClose();
finish();
return;
}
initTouchParams();
this.mIsWebDownload = getIntent().getBooleanExtra(ISDOWNLOAD, false);
this.mIsOutFunction = getIntent().getBooleanExtra(ISOUTFUNCTION, false);
this.mIsShowSureDialog = getIntent().getBooleanExtra(ISSHOWSUREDIALOG, false);
this.mPkg = getIntent().getStringExtra(PKG);
this.mBackIv = (ImageView) findViewById(R.id.ad_sdk_h5_back_iv);
this.mTitleTv = (TextView) findViewById(R.id.ad_sdk_h5_title_tv);
this.mWebView = (WebView) findViewById(R.id.ad_sdk_h5_wv);
if (this.mIsOutFunction) {
showInsertScreenAd();
}
this.mBackIv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AdSdkH5Activity.this.adClose();
AdSdkH5Activity.this.finish();
}
});
CookieSyncManager.createInstance(this);
CookieManager.getInstance().removeAllCookie();
initWebView();
String stringExtra = getIntent().getStringExtra(URL);
loadUrl(stringExtra);
ALog.d(this.TAG, "loadUrl:" + stringExtra);
}
@Override
public void onDestroy() {
WebView webView = this.mWebView;
if (webView != null) {
webView.destroy();
this.mWebView = null;
}
ReportUtils.getInstance().getReport().h5CloseReport();
this.mWebDownloadHandler.removeCallbacksAndMessages(null);
super.onDestroy();
}
}