【问题标题】:stringByEvaluatingJavascriptFromString (iOS method, what is Android equivalent?)stringByEvaluatingJavascriptFromString (iOS 方法,Android 等效项是什么?)
【发布时间】:2012-05-05 11:44:36
【问题描述】:

在 iOS 应用中,我使用了

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

获取 webView 上显示的图像的 src 目录。我想为 Android 做同样的事情。我有哪些选择?

基本上目的是捕获路径,以便我可以通过电子邮件发送同一张图片...

即。

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

这样,当用户单击链接或将其发布到 Facebook 等时,将加载相同的图像。

【问题讨论】:

标签: java php android ios


【解决方案1】:

是的,我非常怀念 Android 中的这种方法;)

要执行 JavaScript 并获得响应,您可以执行以下操作:

  1. 在代码中定义 JavaScript 回调接口:

    class MyJavaScriptInterface {
        @JavascriptInterface
        public void someCallback(String jsResult) {
             // your code...
        }
    }
    
  2. 将此回调附加到您的 WebView

    MyJavaScriptInterface javaInterface = new MyJavaScriptInterface();
    yourWebView.addJavascriptInterface(javaInterface, "HTMLOUT");
    
  3. 从脚本中调用 window.HTMLOUT.someCallback 运行 JavaScript:

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

希望这会有所帮助!

【讨论】:

  • 非常感谢!这太棒了!太糟糕了,它比 iOS 方法繁琐得多!虽然我想更灵活一点! :)
  • 非常感谢,它节省了我的时间:)
  • +1 因为你解释清楚了这个想法,我无法理解其他网站的概念......
  • 嗨,我遇到了 Uncaught TypeError,请检查错误。[INFO:CONSOLE(1)] "Uncaught TypeError: Cannot call method 'someCallback' of undefined",来源:(1)跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-22
相关资源
最近更新 更多