JSApi.java 959 Bytes
package com.polysoft.nafmii.webview;

import android.util.Log;

import com.alibaba.fastjson.JSON;
import com.tencent.smtt.sdk.WebView;

public class JSApi {

    private static final String TAG = JSApi.class.getName();


    public static void callOnBack(WebView webView, String json) {
        callJs(webView, "onBack", json);
    }

    public static void callOnRouteChange(WebView webView, String json) {
        callJs(webView, "onRouteChange", json);
    }

    public static void callOnPushMessage(WebView webView, String json) {
        callJs(webView, "onPushMessage", json);
    }


    public static void callJs(WebView webView, String methodName, String json) {
        String param = JSON.toJSONString(json);
        String script = String.format("javascript:$api.%s(%s)", methodName, param);
        webView.evaluateJavascript(script, value -> Log.d(TAG, String.format("JavaToJsinterface: callJs is %s result : %s", methodName, value)));
    }
}