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

import android.text.TextUtils;

import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;

import com.polysoft.nafmii.bean.MenuBean;
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 boolean backIntercept = false;

    public WebviewHandler(Fragment fragment, WebView webView) {
        this.fragment = fragment;
        this.webView = webView;
        webView.addJavascriptInterface(new NativeApi(this), "$NativeApi");
    }

    @Override
    public boolean canGoBack() {
        if (this.backIntercept) {
            JSApi.callOnBack(this.webView, "");
            return true;
        }
        if (this.webView.canGoBack()) {
            this.webView.goBack();
            return true;
        }
        return false;
    }

    @Override
    public WebView getWebview() {
        return this.webView;
    }

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

    @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();
    }

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

    public void setTextZoom(int zoom) {
        this.webView.getSettings().setTextZoom(zoom);
    }

    public void setButtomMenu(MenuBean bean) {
    }

    protected FragmentManager getFragmentManager() {
        return this.fragment.getActivity().getSupportFragmentManager();
    }

}