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

如何从Android调用JavaScript?

梁丘诚
2023-03-14
问题内容

我们如何从Android调用javascript?我有一个我想使用的javascript库,我想调用javascript函数并将结果值传递给android java代码。从现在开始还没有找到答案。我设法从javascript调用android代码,但我想反过来。


问题答案:

有一个hack:

绑定一些Java对象,以便可以使用WebView从Javascript调用它:

addJavascriptInterface(javaObjectCallback, "JavaCallback")

通过以下方式强制在现有页面中执行javascript:

WebView.loadUrl("javascript: var result = window.YourJSLibrary.callSomeFunction();
    window.JavaCallback.returnResult(result)");

(在这种情况下,你的Java类JavaObjectCallback应具有方法returnResult(..)

注意:这是安全隐患-此网页上的所有JS代码都可以访问/调用你绑定的Java对象。最好将一些一次性cookie传递给loadUrl()并将它们传递回Java对象,以检查调用该代码是否是你的代码



 类似资料:
  • 这段代码适用于Java。但是在迁移到Kotlin之后,编译器higlits方法出现以下文本错误: Andswer是: 如果希望在另一个类中使用这个本机函数,可以指定包含它的类,如下所示:

  • 我似乎不知道如何使通过平台频道从颤振应用程序调用的本机Android模块的调试工作正常。我使用的是颤振文档中的样本(https://flutter.dev/docs/development/platform-integration/platform-channels).我试过以下方法: 在IntelliJ中打开Flutter项目 右键单击android文件夹,选择Flutter|Open Andr

  • 问题内容: 我在此类的构造函数中有一个noraml java类,说ReceivedChat.java,我想调用Android的Activity。 我的活动课是。 该程序不起作用。它不是在调用我的班级的onCreate。对我有任何帮助。 问题答案: 如何从普通的Java类调用Activity类 您需要在通过活动或任何其他应用程序组件创建对象时,将当前活动上下文传递给: 而不是从Constructor

  • 问题内容: 如何从Java调用GraphViz,以及如何使用Java调用GraphViz函数?为了访问用于构建点图的GraphViz库,必须包含哪些必需的jar文件?是否有用于生成点图的示例程序 问题答案: 检查此 API,它很简单,并且具有几种输出格式(即pdf gif ..etc)。 编辑2016年5月: 许多人评论说该API不再可用;这里是其源代码: 首先,您需要创建并复制以下文件,然后粘贴

  • 问题内容: 有没有办法从Swift调用C例程? 许多iOS / Apple库仅是C语言,我仍然希望能够调用它们。 例如,我希望能够从Swift调用objc运行时库。 特别是,如何桥接iOS C标头? 问题答案: 是的,您当然可以与Apples C库进行交互。这里说明了如何。 基本上,C型,C指针等被翻译成对象斯威夫特,例如C 在夫特是一个。 我为另一个问题构建了一个小例子,该例子可以作为对C和Sw

  • 问题内容: 我有一个想从Java使用的Perl模块。是否可以使用Windows上的ActiveState Perl或Linux随附的通用Perl来调用此代码?我找到了对JPL的引用,但似乎不再维护了。 问题答案: Inline-Java是从Perl调用Java的常用库,因此本文提出了 org.perl.java 模块,该模块应允许按要求从Java调用Perl。 但是,由于不同的JVM的JNI实现的