将数据从本机活动传递到WebView

时间:2019-12-01 21:48:43

标签: javascript java android string android-studio

我正在尝试使用来自本机活动的Intent传递字符串,并在WebActivity类中检索它,如下所示:

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

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

这有效(称为“测试”的硬编码值):

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

这不是(尝试将其设置为我的意图值):

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

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

1 个答案:

答案 0 :(得分:0)

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

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

username值应用单引号引起来,如下所示:

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