我正在尝试使用来自本机活动的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
值,但是现在使用它的方式根本不会修改文本输入。
答案 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+"';})();");