В Android, если вы хотите, чтобы webview передавал значение в JavaScript.Во-первых, вам нужно настроить поддержку веб-просмотра JavaScript,
private WebView mWebView;
void onCreate(){
mWebView = findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);
}
И, если вы хотите сделать что-то код
if(connectionNum < 0){ //Printer not working
// I need to do something here to send a message that the printer isn't working to JS.
//In thread can not use mWebView,should send message to MainThread to do
// mWebView.loadUrl("javascript:javaCall()");
Message msg = new Message();
msg.what = 1;
myHandler.sendMessage(msg);
//myHandler can be your MainThread send to here
}
И где mWebView, созданный в вашем коде, находится вОсновной поток, вы можете использовать Обработчик для обработки сообщения, отправленного сюда.
private Handler myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// this 1 is just thread send to here
if (msg.what == 1) {
//and here can do the webview UI method
mWebView.loadUrl("javascript:javaCall()");
}
}
};
javaCall () - это место, где вы вызываете метод вызова JacaScript, в javaScript вы можете написатьнапример:
<script language="javascript">
function javaCall(){
alert("Printer Error");
//other thing you can do
}
</script>
если у вас возникли проблемы, вы можете обратиться к официальному документу.
public void loadUrl (String url)
Loads the given URL.
Also see compatibility note on evaluateJavascript(String, ValueCallback).
ссылка для просмотра веб-сайта