繁体   English   中英

使用Javascript将Android字符串转换为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM