webview-javascriptinterface-f3a18be450f1

WebViewJavaScriptInterface is a bridge between JavaScript code and Java code that allows JavaScript to interact with Java objects and vice versa. Here are some steps to implement WebViewJavaScriptInterface: Create a Java class that implements the JavaScript interface. The JavaScript interface is defined by the @RemoteView class in the android.webkit package. @RemoteView public class MyJavaClass { public void doSomething(String arg); } In your JavaScript code, use the WebView.window.webkit.messagePosted.connect({ postMessage: function(data) { window.webkit.message.send({ action: 'doSomething', data: data }); } }); In the Java code, use the messageReceivedListener to receive the message from the JavaScript code. WebView webView = ...; webView.setMessageReceivedListener(new MessageReceiver() { @Override public boolean onMessageReceived(Message message) { String action = message.getStringExtra("action"); String data = message.getStringExtra("data"); switch (action) { case "doSomething": MyJavaClass myJavaClass = new MyJavaClass(); myJavaClass.doSomething(data); break; default: break; } return true; } }); When the Java object sends a response, use the WebView.postMessage() method to send the response back to the JavaScript code. webView.postMessage(new Message(WebMessage.REPLY, new Bundle()), Message.REPLY); In the JavaScript code, use the window.webkit.message.onmessage event to receive the response. window.webkit.message.onmessage = function(event) { if (event.data.error) { console.log("Error: " + event.data.error); } else { console.log("Response: " + event.data.result); } };



Copyright @2023. Blog Nextzy  . All Rights Reserved .