Да, на самом деле Android ругается.
Я публикую пример кода из случайного примера приложения, которое я сделал, но это должно помочь вам.
Давайте начнем с предположения, что у вас естьв глобальную переменную для вашего класса управления веб-просмотром:
String name = "John";
String lastName = "Doe";
В классе Android, контролирующем веб-просмотр (во время onCreate()
или при настройке веб-просмотра):
webView.addJavascriptInterface(new JavaScriptInterface(), "android")
Внутренний класс дляваш класс управления веб-просмотром:
/**
* Sets up the interface for getting access to Latitude and Longitude data
* from device
**/
private class JavaScriptInterface {
public String getName() {
return name;
}
public String getLastName() {
return lastName;
}
public void onJavascriptButtonPushed(String text) {
Toast.makeText(WebViewControllingClass.this, "The text of the pressed button is: "+text,Toast.LENGTH_SHORT).show();
}
}
Это для Android, теперь для использования через Javascript:
Чтобы получить имя и фамилию через JavaScript:
if (window.android){
name = window.android.getName();
lastName = window.android.getLastName();
}
Если вы хотите поднять тост, установите javascript с функцией:
if (window.android){
window.android.onJavascriptButtonPushed("Hello");
}
Редактировать:
Я не пробовал это, но search дал это, попробуйте, оно должно работать.
Если вы хотите использовать его в другом направлении:
JS:
function testEcho(message){
window.JSInterface.doEchoTest(message);
}
Android:
myWebView.loadUrl("javascript:testEcho('Hello World!')");