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

import android.text.TextUtils;

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

import com.tencent.smtt.sdk.WebView;

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;
    }

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

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

}