Android webapp 中调用 JS 的原生代码

2024-02-27

我正在编写一个Android“网络”应用程序(我不会将应用程序上传到网络,而是在应用程序资源中设置HTML + JS)。这意味着,GUI 将是 HTML5,我将使用另一个“本机”线程从麦克风读取数据,并希望将“解析后的文本”发送到 HTML5/JS 代码。

这可能吗?在 Android 代码中,我看到如何从 JS 调用本机代码(我想要相反的)。

http://developer.android.com/guide/webapps/webview.html http://developer.android.com/guide/webapps/webview.html


是的,Android 在这方面确实很出色。

我正在发布来自我制作的随机示例应用程序的示例代码,但这应该可以帮助您继续。

让我们首先假设您必须将全局变量添加到您的 webview 控制类中:

String name = "John";
String lastName = "Doe";

在控制 webview 的 Android 类中(期间onCreate()或者当你设置你的网络视图时):

webView.addJavascriptInterface(new JavaScriptInterface(), "android")

webview 控制类的内部类:

/**
* Sets up the interface for getting access to Latitude and Longitude data
* from device
**/
private class JavaScriptInterface {
    public String getName() {
        return name;
    }
    public String getLastName() {
        return lastName;
    }
    public void onJavascriptButtonPushed(String text) {
        Toast.makeText(WebViewControllingClass.this, "The text of the pressed button is: "+text,Toast.LENGTH_SHORT).show();
    }
}

Android 端就是这样,现在通过 Javascript 使用它:

要通过 JavaScript 获取姓名:

if (window.android){
    name = window.android.getName();
    lastName = window.android.getLastName();
}

如果你想举杯,请设置一个javascript,其功能为:

if (window.android){
    window.android.onJavascriptButtonPushed("Hello");
}

Edit:

我没试过这个,但是search https://stackoverflow.com/questions/4325639/android-calling-javascript-functions-in-webview产生了这个,尝试一下,它应该有效。

如果你想在另一个方向使用它:

JS:

function testEcho(message){
     window.JSInterface.doEchoTest(message);
}

Android:

myWebView.loadUrl("javascript:testEcho('Hello World!')");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android webapp 中调用 JS 的原生代码 的相关文章

随机推荐

  • 在 Android Studio 中使用 gradle 2.4

    我想在 Android Studio 中使用最新版本的 Gradle 如何检查使用的是哪个版本 以及如何升级到最新版本 如果支持 我想升级 因为我读到最新版本的 Gradle 缩短了构建时间 You can check current Gr
  • 为什么使用 dtype np.int64 的操作比使用 np.int16 的相同操作慢得多?

    这就是我的意思 a是 1 000 000 的向量np int64元素 b是 1 000 000 的向量np int16要素 In 19 a np random randint 100 size 10 6 dtype int64 In 20
  • 如何在 Pandas 中选择仅包含正值或负值的行

    我有以下 DF df pd DataFrame x 1 2 3 1 2 3 y 1 3 2 4 3 2 z 1 1 5 2 1 1 or x y z 0 1 1 1 1 2 3 1 2 3 2 5 3 1 4 2 4 2 3 1 5 3 2
  • 如何创建带圆角的用户控件?

    我正在尝试拥有一个具有圆角的用户控件 它没有固定的大小 但宽度通常不会超过 120 像素 我需要用户控件及其内容 标签和表格 具有圆形边缘并且看起来像圆形盒子 我已经使用过这段代码 DllImport Gdi32 dll EntryPoin
  • 使用通配符扩展来回显 zsh 中的所有变量

    对于以相同模式开头的多个变量 可以使用通配符来回显所有匹配的模式吗 when zzz1 test1 zzz A test2 zzza test3 匹配以 zzz 开头的所有变量的最佳方法是什么 哪里像echo zzz or for i in
  • 规范覆盖和最小覆盖之间的区别

    我知道如何计算最低保障 确保每个功能依赖项在 RHS 上只有一个属性 通过计算每个属性的闭包来删除无关 冗余的 LHS 属性 检查所有 FD 看看是否可以删除任何 FD 再次通过计算闭包 规范 封面只是同一事物的另一个词吗 规范封面 允许
  • 在 Talend 中加载一组文件的策略

    我想知道在 Talend 中解决以下问题的最佳策略是什么 我需要从存储在名称类似于 SAMPLE1 DAT SAMPLE2 DAT SAMPLEX DAT 的目录中的一组分隔文件中加载数据 目标将是 MySQL 数据库中的一个表 我必须立即
  • 内联复选框ajax修改数字

    我有一个像这样的 html 例如 li li
  • Keycloak/Wildfly 如何将所有控制台日志配置为 JSON 格式

    我正在使用官方 Keycloak 图像并尝试为控制台日志设置 JSON 格式 如下所示 启动 cli embed server server config standalone ha xml std out echo subsystem l
  • 导轨 3;活动记录;在哪里;数据库中两列之间的 NOT EQUAL 条件比较

    有没有某种方法可以使用比较数据库中的两列where 比如说 我有两列user这告诉我们 出生城市 最喜欢的城市 我想要一个具有不同于 city of birth 的 favourite city 的用户列表 我希望这样的事情能够奏效 use
  • 模糊图像的阈值 - 第 2 部分

    如何对这个模糊图像进行阈值处理以使数字尽可能清晰 In 以前的帖子 https stackoverflow com questions 13391073 adaptive threshold of blurry image 我尝试对模糊图像
  • R中的R图像函数

    我正在使用 R 中附加的图像函数 为了速度 我更喜欢使用它而不是热图 因为我将它用于巨大的矩阵 400000 x 400 我的函数中的问题是调色板的动态范围 在我的例子中它只有蓝色和黄色 我尝试了对 colorramp 线的多次更改 但没有
  • 获取不包含 DOCTYPE、HTML、HEAD 和 BODY 标签的 BODY 内容

    我想做的是在 PHP 系统中包含一个 HTML 文件 不是问题 但是由于各种原因 该 HTML 文件也需要单独使用 所以我需要知道如何剥离 doctype html PHP 上下文中的 head 和 body 标签 如果可能的话 我对 PH
  • 如何使用 Gspread 下载 Google Docs Excel 工作表并在本地访问数据(A1 表示法)?

    我需要通过 Gspread 从 Google Docs 下载 Excel 工作表 然后多次需要读取不同单元格的值 A1 符号 因此 我不能只获取电子表格然后致电val worksheet acell B1 value 因为脚本会因过多的 A
  • 显示 R 和 dplyr 的拟合值

    我有数据框DF 我在用R and dplyr来分析它 DF包含 gt glimpse DF Observations 1244160 Variables Channel int 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 将 ExceptionDescribe 转换为字符串

    我需要将 JNI 中 ExceptionDescribe 的输出作为字符串获取 以便之后可以将其写入文件中 而不是直接在命令行上写入 有什么方法或想法可以做到这一点吗 提前致谢 Sami ExceptionOccurred 是第一步 要获取
  • 当区域设置为阿拉伯语时 Android 中的日期格式问题

    我这里有一个严重的问题 我正在构建一个可以在阿拉伯语设备上运行的应用程序 我需要将日期发送到服务器 我使用 Android DatePickerDialog 来获取日期 但日期总是使用阿拉伯语字符发送 并且何时我尝试再次显示它 它给了我无法
  • 使用 JavaScript 计算 A、B、C、D,而不是 0、1、2、3...

    这可能是一个不寻常的请求 但对于我的脚本 我需要一个按字母而不是数字递增的函数 例如 这是一个数字示例 var i 0 while condition window write We are at i i 本质上 我想像 Microsoft
  • Rails 3.1 Devise 如何更改 Flash Message CSS 从通知到成功?

    Rails 3 1 和 Devise 1 5 问题 我使用以下代码在布局中显示 Flash 消息 我想将一些确认消息的 css 类从通知更改为成功 但我不知道在哪里覆盖或更改密钥 因为我不知道它在哪里设置 有人能指出我正确的方向吗 Than
  • Android webapp 中调用 JS 的原生代码

    我正在编写一个Android 网络 应用程序 我不会将应用程序上传到网络 而是在应用程序资源中设置HTML JS 这意味着 GUI 将是 HTML5 我将使用另一个 本机 线程从麦克风读取数据 并希望将 解析后的文本 发送到 HTML5 J