WebviewHandler.java 1.67 KB
package com.polysoft.nafmii.webview;

import android.text.TextUtils;

import androidx.fragment.app.Fragment;

import com.polysoft.nafmii.bean.MenuBean;
import com.polysoft.nafmii.enums.JSMethodsEnum;
import com.tencent.smtt.sdk.WebView;
import com.whaty.nafmii.activity.HomeActivity;

public class WebviewHandler implements IWebview {

    private static final String TAG = WebviewHandler.class.getName();
    protected final Fragment fragment;
    protected final WebView webView;
    protected final JavaToJsinterface java2js;

    protected boolean backIntercept = false;

    public WebviewHandler(Fragment fragment, WebView webView) {
        this.fragment = fragment;
        this.webView = webView;
        this.java2js = new JavaToJsinterface(webView);
    }

    @Override
    public boolean canGoBack() {
        if (this.backIntercept) {
            this.java2js.callJs(JSMethodsEnum.CALL_BACK, "");
            return true;
        }
        if (this.webView.canGoBack()) {
            this.webView.goBack();
            return true;
        }
        return false;
    }

    @Override
    public void loadUrl(String url) {
        if (TextUtils.isEmpty(url) || url.equals(this.getUrl())) {
            return;
        }
        this.webView.loadUrl(url);
    }

    @Override
    public String getUrl() {
        return this.webView.getUrl();
    }

    @Override
    public JavaToJsinterface getJsInterface() {
        return this.java2js;
    }

    public void setBackIntercept(boolean intercept) {
        this.backIntercept = intercept;
    }

    public WebView getWebView() {
        return this.webView;
    }

    public Fragment getFragment() {
        return this.fragment;
    }
}