Android Вызов функций JavaScript в WebView

Я пытаюсь вызвать некоторые javascript функции, находящиеся на странице html , работающей внутри веб-просмотра Android . Довольно просто то, что пытается сделать код ниже - из приложения для Android вызовите функцию javascript с тестовым сообщением, которое, в свою очередь, вызовет функцию Java в приложении для Android, которая отображает тестовое сообщение в виде тоста.

Функция javascript выглядит так:

function testEcho(message){
     window.JSInterface.doEchoTest(message);
}

Из WebView я попытался вызвать javascript следующими способами, но безуспешно:

myWebView.loadUrl("javascript:testEcho(Hello World!)");
mWebView.loadUrl("javascript:(function () { " + "testEcho(Hello World!);" + "})()");

Я включил javascript в WebView

myWebView.getSettings().setJavaScriptEnabled(true);
// register class containing methods to be exposed to JavaScript
myWebView.addJavascriptInterface(myJSInterface, "JSInterface"); 

И вот Java класс

public class JSInterface{

private WebView mAppView;
public JSInterface  (WebView appView) {
        this.mAppView = appView;
    }

    public void doEchoTest(String echo){
        Toast toast = Toast.makeText(mAppView.getContext(), echo, Toast.LENGTH_SHORT);
        toast.show();
    }
}

. Я потратил много времени на поиск в Google, чтобы увидеть, что я делаю неправильно. Все примеры, которые я нашел, используют этот подход. Кто-нибудь видит здесь что-то не так?

Изменить: Есть несколько других внешних javascript файлов, на которые ссылаются и используются в html , могут ли они быть проблемой?

]
234
задан Xcodian Solangi 3 November 2017 в 03:15
поделиться