![](/img/trans.png)
[英]How to escape MathML String in Android for Javascript in WebView
[英]Android String to WebView with Javascript
我正在尝试将Intent数据获取到加载的WebView。
在此之前,我有一个EditText,我最初使用这些值登录到myURL站点,并在其中带有活动ID的userID和userPW的WebView中(该站点)。
但是为了更好的设计,我将Webview移至另一个活动,并通过Bundle发送IDPW。
问题是String变量email和password似乎设置正确,但是当我尝试使用以前使用的相同代码时,效果不佳。
Android中有一些规则,如果没有用户输入,我无法直接传递变量?
有人知道如何解决这个问题吗?
下面是我目前停留的代码
public class MyWeb extends Activity{
WebView webview;
String email;
String password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(activity_myweb);
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
email = bundle.getString("ID");
password = bundle.getString("PW");
webview = (WebView)findViewById(R.id.logIn);
webview.setWebViewClient(new WebClient());
webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("myURL");
login(email, password);
}
private void login(String id, String pw){
webview.loadUrl("javascript: {" +
"document.getElementById('userID').value = '"+email +"';" +
"document.getElementById('userPW').value = '"+password+"';" +
"var a = document.getElementsByTagName('input');" +
"a[2].CheckSubmit(); };");
webview.loadUrl("javascript:CheckSubmit()");
}
webview.setWebViewClient(new WebClient() {
@Override
public void onPageFinished(WebView view, String url) {
webview.loadUrl("javascript: {" +
"document.getElementById('userID').value = '" + email + "';" +
"document.getElementById('userPW').value = '" + password + "';" +
"var a = document.getElementsByTagName('input');" +
"a[2].CheckSubmit(); };");
webview.loadUrl("javascript:CheckSubmit()");
}
});
解决了,我想这是因为在网页加载之前调用了JS,以为在我在字段中键入内容之前,Activity会加载所有页面
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.