package com.mozz.htmlnative.script; import com.mozz.htmlnative.HNSandBoxContext; /** * @author Yang Tao, 17/3/21. */ public abstract class ScriptRunner { protected final HNSandBoxContext mSandbox; private OnScriptCallback mErrorCallback; private static OnScriptCallback sUniversalCallback = null; public ScriptRunner(HNSandBoxContext sandBoxContext) { this.mSandbox = sandBoxContext; } public static void registerUniversalCallback(OnScriptCallback sUniversalCallback) { ScriptRunner.sUniversalCallback = sUniversalCallback; } public static void clearUniversalCallback() { ScriptRunner.sUniversalCallback = null; } public static OnScriptCallback getUniversalCallback() { return sUniversalCallback; } public abstract void run(String script); public abstract void runFunction(String functionName); public OnScriptCallback getScriptCallback() { return mErrorCallback; } public void registerScriptCallback(OnScriptCallback mErrorCallback) { this.mErrorCallback = mErrorCallback; } public interface OnScriptCallback { void error(Exception e); } protected final void dispatchScriptError(Exception e) { if (mErrorCallback != null) { mErrorCallback.error(e); } } }