запуск JavascriptInterface из веб-браузера Android - PullRequest
7 голосов
/ 10 мая 2019

Я выполнил инструкцию по запуску JavascriptInterface из веб-просмотра, но в моем случае это не сработало.

У меня есть класс QuickTextViewer со следующим:

    public class QuickTextViewer {
        private WebView webView;
    ...
    ...
        public QuickTextViewer(){
           webView = dialog.findViewById(R.id.mywebview);

           webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                 view.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)");
                super.onPageFinished(view, url);
            }
        }
@JavascriptInterface
    public void resize(final float height) {
        System.out.print(height);
    }

Я также добавил следующее в proguard-rules.pro (фактически общедоступный только для тестирования)

-keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}

В моем случае onPageFinished срабатывает, но resize () нет! Любые предложения / помощь?

1 Ответ

5 голосов
/ 12 мая 2019

Нашел проблему сейчас.Просто нужно было добавить:

webView.getSettings().setJavaScriptEnabled(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...