如何将 Bridge 消息从 Java (Android) 发送到 JavaScript

Posted

技术标签:

【中文标题】如何将 Bridge 消息从 Java (Android) 发送到 JavaScript【英文标题】:How to send a Bridge message from Java (Android) to JavaScript 【发布时间】:2021-08-06 05:26:24 【问题描述】:

我正在开发一个桥接器,并且能够将消息从 JS 发送到 Java。但是现在,我想给 JS 发回消息。

我知道一种使用 Activity.startActivityForResult(intent, request_code) 然后调用 webView.evaluatejavascript 的方法,但我不想要意图部分。

有没有办法创建一个空意图(new Intent() 不起作用)或此方法的替代方法?

【问题讨论】:

您可能会考虑编辑您的问题以准确解释“桥梁”的含义,并显示minimal reproducible example 您如何将消息从 JavaScript 发送到 Java。例如,如果这是WebView,并且您正在为 JS -> Java 使用消息通道,则可以对 Java -> JS 使用相同的内容:commonsware.com/blog/2017/01/23/… 【参考方案1】:

您可以使用 JavaScript 在 Java 中注册一个接口,通过该接口 JavaScript 可以调用您的本机 Java 函数。在这里您可以找到更多详细信息:

https://developer.android.com/guide/webapps/webview#BindingJavaScript

【讨论】:

是的。根据我的问题,我已经这样做了。现在我想要相反的。也就是说,从 Java 向 JavaScript 发送消息。 对不起,我误读了您的问题。你有没有试过这样调用 JS 函数:。 webView.loadUrl("javascript:foo('测试消息')"); 这里 foo 是 JavaScript 函数名,我们将字符串作为参数传递。【参考方案2】:

我制作了一个有效的 Android Studio 示例 将数据从 Android java 发送到 WebView js,从 WebView 发送到 Android

https://***.com/a/63539217/1023540

(它被下载了 191 次 :-)

【讨论】:

以上是关于如何将 Bridge 消息从 Java (Android) 发送到 JavaScript的主要内容,如果未能解决你的问题,请参考以下文章

如何将繁体中文消息从 Java 发送到 IBM MQ

java 从资源字体获取颜色:https://stackoverflow.com/questions/31590714/getcolorint-id-deprecated-on-android-6-0

桥接模式-Bridge(Java实现)

如何检查是不是启用了 Java Access Bridge? (电源外壳)

Strimzi Kafka Bridge(桥接)实战之二:生产和发送消息

Strimzi Kafka Bridge(桥接)实战之二:生产和发送消息