javascript - 将数据从 Native Activity 传递到 WebView

标签 javascript java android string android-studio

我正在尝试使用 native Activity 中的 Intent 传递字符串,并在 WebActivity 类中检索它,如下所示:

final String username = getIntent().getStringExtra("USERNAME");

之后,我尝试调用一个 Javascript 函数,该函数将使用 DOM 操作将 text 输入的值更改为 Intent 中的 username 值。我的问题是:

这有效(硬编码值称为“test”):

myWebView.loadUrl("javascript:(function(){document.getElementById('username').value = 'test';})();");

这不会(尝试将其设置为我的 Intent 值):

myWebView.loadUrl("javascript:(function(){document.getElementById('username').value = "+username+";})();");

我认为我可能错误地包装了 username 值,但按照我现在的方式使用它根本不会修改文本输入。

最佳答案

在用户Mike M.的帮助下我发现我犯了两个错误:

  • 错误地放置了额外的内容
  • 缺少单引号
Intent myWebIntent = new Intent(MainActivity.this, MyWebActivity.class);
myWebIntent.putExtra("USERNAME", s); // this line needs to go before startActivity()
startActivity(battleShipIntent);

用户名值应该用单引号括起来,如下所示:

myWebView.loadUrl("javascript:(function(){document.getElementById('username').value = '"+username+"';})();");

关于javascript - 将数据从 Native Activity 传递到 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59130303/

相关文章:

javascript - 尽管使用缓冲区调用,文件类型 npm 模块仍返回 null,我做错了什么?

javascript - 灯箱 'next' 功能仍然显示已通过显示 :none; 隐藏的元素 (li)

java - Android JSON 性能问题

java - 应该在哪里定义可选的DefaultTableModel方法?

android - 下载文件到自定义目录

javascript - 使用js动态添加SVG mask

javascript - jquery-templ 的回调函数?

java - for循环,运行1000次程序,在JAVA中得到蛇眼平均需要roll的次数

android - 使用CursorLoader查询目录

android - 将颜色设置为 Android 中 TextView 内的 drawableTop 图像