导航菜单

页面标题

页面副标题

小柿子 v1.3.8 - AdSdkH5Activity.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();
    }
}