0

我在我的应用程序的 web 视图中打开了网站(Cyber​​oam-college)的登录页面。现在我想这样做,这样用户就不必一次又一次地输入用户名和密码,而是可以从列表或其他地方选择它,应用程序会自动填写用户名、密码并单击登录。我已经读过要做到这一点,我需要在我的 webview 中实现 javascript。

问题是,用户名和密码字段的 html 标签中都没有 id,只有 name 属性-

<input type="text" name="username">
<input type="password" name="password">

登录按钮有 ID,因此可以使用 -

<input type="submit" name="btnSubmit" value="Login" id="logincaption">

现在我需要使用存储在 MainActivity.java 变量中的字符串首先填充用户名文本字段,然后是密码字段,最后在用户单击存储用户名和密码列表中的元素时单击登录按钮。

请告诉我如何在Android中实现它!

4

2 回答 2

2

首先确保它不是 iframe。如果您可以构建本机登录,我相信没有理由为登录目的添加 webView。无论如何,如果您需要选择输入,您可以使用:

  function login(){
        document.querySelector("input[name=username]").value  = "username";
        document.querySelector("input[name= password]").value  = "password";
        document.forms[0].submit();
 }

要将值从 Java 代码传递给 JS,您必须编写一个桥接器并触发 JS 函数您可以在此处阅读如何构建桥接器:http: //blog.cuelogic.co.in/simple-android-java-javascript-bridge/

于 2013-09-02T16:02:33.390 回答
2

首先,使用以下语句

@SuppressLint("SetJavaScriptEnabled")

那么,您可以:

mWebView = (WebView) findViewById(R.id.webview); 
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageFinished(WebView view, String url) {

        String javascript="javascript: document.getElementById('someid').innerHTML='Hello World!';";
        view.loadUrl(javascript);
    }
});
mWebView.loadUrl(URL);

您可以使用此方法插入 Java 接口,以通过 Java 方法异步控制。

于 2014-12-17T21:27:11.070 回答