package com.camnter.newlife.ui.activity.jsbridge; import android.os.Handler; import android.os.Looper; import android.webkit.WebView; import java.lang.ref.WeakReference; import org.json.JSONObject; /** * Description:JsCallback * * native 层执行完代码,回调到 Js 层 * * Created by:CaMnter */ public class JsCallback { private static Handler mHandler = new Handler(Looper.getMainLooper()); private static final String JS_CALLBACK_FORMAT = "javascript:JsBridge.onFinish('%s', %s);"; private String mPort; private WeakReference<WebView> mWebViewRef; public JsCallback(WebView view, String port) { this.mWebViewRef = new WeakReference<>(view); this.mPort = port; } public void apply(JSONObject jsonObject) { final String execJs = String.format(JS_CALLBACK_FORMAT, this.mPort, String.valueOf(jsonObject)); if (this.mWebViewRef != null && this.mWebViewRef.get() != null) { mHandler.post(() -> mWebViewRef.get().loadUrl(execJs)); } } }