package com.tagmae.tsgame_erwang;

import android.util.Log;
import com.tagmae.jsbridge.BridgeWebView;

/**
 * 全局WebView辅助类
 * 提供访问和操作全局WebView的便捷方法
 */
public class GlobalWebViewHelper {
    private static final String TAG = "GlobalWebViewHelper";

    /**
     * 获取全局WebView实例
     * @return WebView实例，如果未初始化则返回null
     */
    public static BridgeWebView getWebView() {
        return NewwebviewActivity.getWebView();
    }

    /**
     * 检查全局WebView是否可用
     * @return true如果WebView可用，false否则
     */
    public static boolean isWebViewAvailable() {
        return NewwebviewActivity.x5webview != null;
    }

    /**
     * 在WebView中执行JavaScript代码
     * @param script 要执行的JavaScript代码
     */
    public static void executeJavaScript(String script) {
        BridgeWebView webView = getWebView();
        if (webView != null) {
            webView.loadUrl("javascript:" + script);
            Log.d(TAG, "Executed JavaScript: " + script);
        } else {
            Log.w(TAG, "Cannot execute JavaScript: WebView is not available");
        }
    }

    /**
     * 获取WebView当前URL
     * @return 当前URL，如果WebView不可用则返回null
     */
    public static String getCurrentUrl() {
        BridgeWebView webView = getWebView();
        if (webView != null) {
            return webView.getUrl();
        }
        return null;
    }

    /**
     * 重新加载WebView
     */
    public static void reload() {
        BridgeWebView webView = getWebView();
        if (webView != null) {
            webView.reload();
            Log.d(TAG, "WebView reloaded");
        } else {
            Log.w(TAG, "Cannot reload: WebView is not available");
        }
    }

    /**
     * 获取Canvas的base64数据（便捷方法）
     * @param canvasId Canvas元素ID，null表示获取第一个Canvas
     * @param callback 回调接口
     */
    public static void getCanvasBase64(String canvasId, WebViewScreenshotUtil.CanvasToBase64Callback callback) {
        WebViewScreenshotUtil.getCanvasBase64FromGlobalWebView(canvasId, callback);
    }

    /**
     * 获取第一个Canvas的base64数据（便捷方法）
     * @param callback 回调接口
     */
    public static void getCanvasBase64(WebViewScreenshotUtil.CanvasToBase64Callback callback) {
        getCanvasBase64(null, callback);
    }
}
