我正在尝试使用 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/