package com.ym.library.activity;

import android.app.Activity;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.umeng.analytics.MobclickAgent;
import com.ym.library.R;
import com.ym.library.net.MyBaseActivity;
import com.ym.library.utils.StatusBarUtil;

import org.jetbrains.annotations.NotNull;

public class WebViewActivity extends MyBaseActivity {

    private String url;
    private String title;
    private CustomWebView webView;

    @Override
    public void before() {
        super.before();
        StatusBarUtil.transportStatus(this, getResources().getColor(R.color.transparent));
    }

    @Override
    public int layoutID() {
        return R.layout.activity_webview;
    }

    @Override
    public void init() {
        url = getIntent().getData().getQueryParameter("url");
        title = getIntent().getData().getQueryParameter("title");
        RelativeLayout rl = findViewById(R.id.id_rl_toolbar);
        if (getIntent().getData().getBooleanQueryParameter("showToolbar", true)) {
            rl.setVisibility(View.VISIBLE);
        } else {
            rl.setVisibility(View.GONE);
        }
        webView = findViewById(R.id.activity_webview2);
        initTitle();
        initWebView();
        webView.loadUrl(url);
    }

    private void initWebView() {
//        webView.setBackgroundColor(getResources().getColor(R.color.color_FEDA83));
        //设置WebView的宽高
//==================================引起的白屏========================================
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//            webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
//        }
//        // 清缓存和记录，缓存引起的白屏
//        webView.clearCache(true);
//        webView.clearHistory();
//
//        webView.requestFocus();
//        webView.getSettings().setDatabaseEnabled(true);
//// 缓存白屏
//        String appCachePath = getApplicationContext().getCacheDir()
//                .getAbsolutePath() + "/webcache";
//// 设置 Application Caches 缓存目录
//        webView.getSettings().setAppCachePath(appCachePath);
//        webView.getSettings().setDatabasePath(appCachePath);
//==========================================================================
        webView.getSettings().setUseWideViewPort(true);
        webView.getSettings().setLoadWithOverviewMode(true);
//        webView.getSettings().setDefaultFontSize(56);
        // webView.getSettings().setMinimumFontSize(40);//设置最小字体
        // 建议禁止缓存加载，以确保在攻击发生时可快速获取最新的滑动验证组件进行对抗。
        webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        // 设置不使用默认浏览器，而直接使用WebView组件加载页面。
        // 设置WebView组件支持加载JavaScript。
        webView.getSettings().setJavaScriptEnabled(true);
        // 建立JavaScript调用Java接口的桥梁。
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
//        webView.addJavascriptInterface(new WebJavaInterface(this, webView){
//            apiClientPost(String url, String tag){
//
//            }
//        }, "novel");
//
//        webView.addJavascriptInterface(new WebJavaInterface(this,webView){
//            onApiSuc(String url, String tag){
//
//            }
//        },"android");
//        webView.addJavascriptInterface(new WebJavaInterface(this,webView).);

        webView.addJavascriptInterface(new WebJavaInterface(this, webView), "android");

        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
//        webView.loadDataWithBaseURL(null, url, "text/html", "utf-8", null);//解决乱码问题
    }

    private void initTitle() {
//        findViewById(R.id.id_iv_back).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                finish();
//            }
//        });
//        TextView tv_title = findViewById(R.id.tv_user_title);
//        tv_title.setText(title);

        findViewById(R.id.iv_user_toolbar_back).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
        TextView tv_title = findViewById(R.id.tv_user_toolbar_title);
        tv_title.setText(title + "");
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (webView != null) {
            webView.loadUrl("javascript:onResume()");
        }
        MobclickAgent.onResume(this);
        // ToponManager.INSTANCE.initNativeAd(this, AdID.AD_WELFARE_CENTER_BIGIMAGE);
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (webView != null) {
            webView.loadUrl("javascript:onPause()");
        }
        MobclickAgent.onPause(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (webView != null) {
            webView.destroy();
        }
    }

    class WebJavaInterface extends JavaInterface {

        public WebJavaInterface(@NotNull Activity act, @NotNull WebView web) {
            super(act, web);
        }


    }
}
