StringByEvaluatingJavascriptFromString (метод iOS, что эквивалентно Android?)

В приложении iOS я использовал

stringFromJavaScript = [webView stringByEvaluatingJavascriptFromString:@"document.getElementById(\"image\").getAttribute(\"src")"];

Чтобы получить каталог src изображения, которое было отображено в webView. Я хочу сделать то же самое для Android. Каковы мои варианты?

В основном цель состоит в том, чтобы зафиксировать путь, чтобы я мог отправлять по электронной почте эту же картинку...

т.

"picture.php?image=%@",stringFromJavascript

Таким образом, это же изображение будет загружено, когда пользователь нажмет на ссылку или разместит ее в facebook и т.д.

Ответы

Ответ 1

Да, я очень сильно скучаю по этому методу в Android;)

Чтобы выполнить JavaScript и получить ответ, вы можете сделать следующее:

  • Определите интерфейс обратного вызова JavaScript в вашем коде:

    class MyJavaScriptInterface {
        @JavascriptInterface
        public void someCallback(String jsResult) {
             // your code...
        }
    }
    
  • Прикрепите этот обратный вызов к WebView

    MyJavaScriptInterface javaInterface = new MyJavaScriptInterface();
    yourWebView.addJavascriptInterface(javaInterface, "HTMLOUT");
    
  • Запустите свой JavaScript-вызов window.HTMLOUT.someCallback из script:

    yourWebView.loadUrl("javascript:( function () { var resultSrc = document.getElementById(\"image\").getAttribute(\"src\"); window.HTMLOUT.someCallback(resultSrc); } ) ()");
    

Надеюсь, это поможет!