stringByEvaluatingJavascriptFromString (iOS 方法,Android 等效项是啥?)
Posted
技术标签:
【中文标题】stringByEvaluatingJavascriptFromString (iOS 方法,Android 等效项是啥?)【英文标题】: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 等时,将加载相同的图像。
【问题讨论】:
这样的事情可能是正确的轨道,但是我想将元素作为字符串用于代码lexandera.com/2009/01/injecting-javascript-into-a-webview 愚蠢的部分是WebView.loadURL()
在URL方案为javascript
时显然在内部使用stringByEvaluatingJavascriptFromString()
。 github.com/android/platform_frameworks_base/blob/master/core/…
您可以通过反射在Android中使用此方法,请访问***.com/a/17830417/2442753
【参考方案1】:
是的,我非常怀念 Android 中的这种方法;)
要执行 JavaScript 并获得响应,您可以执行以下操作:
在代码中定义 JavaScript 回调接口:
class MyJavaScriptInterface
@JavascriptInterface
public void someCallback(String jsResult)
// your code...
将此回调附加到您的 WebView
MyJavaScriptInterface javaInterface = new MyJavaScriptInterface();
yourWebView.addJavascriptInterface(javaInterface, "htmlOUT");
从脚本中调用 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)跨度>以上是关于stringByEvaluatingJavascriptFromString (iOS 方法,Android 等效项是啥?)的主要内容,如果未能解决你的问题,请参考以下文章