@@ -155,31 +155,46 @@ public void eval(@NonNull String script) {
155155 }
156156
157157 public void bind (@ NonNull String name , @ NonNull ConsumingProducer <JsonArray , JsonElement > handler ) {
158- N .webview_bind ($pointer , name , new BindCallback () {
159- @ Override
160- public void callback ( long seq , String req , long arg ) {
161- try {
162- JsonArray arguments = Rson . DEFAULT . fromJson ( req , JsonArray . class );
163-
158+ N .webview_bind (
159+ $pointer ,
160+ name ,
161+ new BindCallback () {
162+ @ Override
163+ public void callback ( long seq , String req , long arg ) {
164164 try {
165- @ Nullable
166- JsonElement result = handler .produce (arguments );
167-
168- N .webview_return ($pointer , seq , false , Rson .DEFAULT .toJsonString (result ));
169- } catch (Exception e ) {
170- N .webview_return ($pointer , seq , true , e .getMessage ());
165+ JsonArray arguments = Rson .DEFAULT .fromJson (req , JsonArray .class );
166+
167+ try {
168+ @ Nullable
169+ JsonElement result = handler .produce (arguments );
170+
171+ N .webview_return ($pointer , seq , false , Rson .DEFAULT .toJsonString (result ));
172+ } catch (Exception e ) {
173+ N .webview_return ($pointer , seq , true , e .getMessage ());
174+ }
175+ } catch (JsonParseException e ) {
176+ e .printStackTrace ();
171177 }
172- } catch (JsonParseException e ) {
173- e .printStackTrace ();
174178 }
175- }
176- }, 0 );
179+ },
180+ 0
181+ );
177182 }
178183
179184 public void unbind (@ NonNull String name ) {
180185 N .webview_unbind ($pointer , name );
181186 }
182187
188+ public void dispatch (@ NonNull Runnable handler ) {
189+ N .webview_dispatch (
190+ $pointer ,
191+ ($pointer , arg ) -> {
192+ handler .run ();
193+ },
194+ 0
195+ );
196+ }
197+
183198 @ Override
184199 public void run () {
185200 N .webview_run ($pointer );
0 commit comments