当前位置: 首页 > 面试题库 >

stringByEvaluatingJavascriptFromString(iOS方法,相当于Android?)

庞乐池
2023-03-14
问题内容

在iOS应用中,我使用了

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

获取正在webView上显示的图像的src目录。我想对Android执行相同操作。我有什么选择?

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

即。

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

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


问题答案:

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

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

  1. 在代码中定义JavaScript回调接口:
        class MyJavaScriptInterface {
        @JavascriptInterface
        public void someCallback(String jsResult) {
             // your code...
        }
    }
  1. 将此回调附加到您的WebView
        MyJavaScriptInterface javaInterface = new MyJavaScriptInterface();
    yourWebView.addJavascriptInterface(javaInterface, "HTMLOUT");
  1. window.HTMLOUT.someCallback从脚本运行JavaScript调用
    yourWebView.loadUrl("javascript:( function () { var resultSrc = document.getElementById(\"image\").getAttribute(\"src\"); window.HTMLOUT.someCallback(resultSrc); } ) ()");
    

希望这可以帮助!



 类似资料:
  • 我熟悉在Android中使用AsyncTask:创建一个子类,在子类的实例上调用execute,在UI线程或主线程上调用onPostExecute。iOS中的等价物是什么?

  • 问题内容: 我正在尝试使我的项目python2.7和3兼容,并且python 3具有内置方法int.from_bytes。python 2.7中是否存在等效项,或者使该代码2.7和3兼容的最佳方法是什么? 问题答案: 您可以将其视为编码(特定于Python 2): 或在Python 2和Python 3中: 优点是字符串不限于特定的大小假设。缺点是它是未签名的。

  • 我想从移动网络链接在导航模式下打开谷歌地图。这对于使用https://developers.google.com/maps/documentation/ios/urlscheme的iOS设备来说似乎很容易 有Android系统的等价物吗?我只能找到这个:https://developer.android.com/guide/appendix/g-app-intents.html 但这不允许您指定“

  • 我正在为iOS开发一个应用程序,我正在使用自动布局的故事板。我的一个视图控制器有一组4个按钮,在某些情况下,我想让第一个按钮消失。 如果我使用方法,UIButton将不可见,但它显然仍占据了视图中的空间,结果是我无法填充一个“洞”,使剩余的UIButton朝主视图顶部浮动。 在Android系统中,我会简单地使用而不是查看。不可见,但在iOS中,我被这种行为所困扰,我不想相信唯一的解决方案是手动(

  • 问题内容: 我有这个装饰器: 该代码仅能在linux上执行任何操作,就像在Windows上一样。在Windows中也可以使用此代码的最简单方法是什么? 问题答案: 它不是很漂亮,但是我不得不以跨平台的方式做类似的事情,于是我想到了使用单独的线程。基于信号的系统无法在所有平台上可靠地工作。 此类的使用可以包装在装饰器中,也可以制成上下文处理程序。 YMMV。

  • 问题内容: 我们曾经声明要在类之间传递数据,如下所示: 现在没有类,如何在类之间传递数据? 问题答案: Swift不区分属性和实例变量(即属性的基础存储)。要定义属性,只需在类的上下文中声明一个变量。 swift类只是ClassName.swift文件。 您将一个类和属性声明为 您可以通过点表示法访问属性值。作为Xcode6测试4的,也有访问修饰符(,并在SWIFT)。默认情况下,每个属性都是。有