2016-12-13 40 views
0

我想使用javascript登录到新闻网站,以便我可以查看新闻的全部内容。在阅读一些帖子后,我尝试了一些我自己的代码,但它不起作用。无法使用JavaScript通过webview登录 - android

网站:http://m.malaysiakini.com/news/363188

网站形式:enter image description here

编辑:改变了我的代码如下回答,但仍然无法正常工作

我的源代码:

webViewLoadURL(); 
    webView.loadUrl("http://m.malaysiakini.com/news/363188"); 

    webView.getSettings().setJavaScriptEnabled(true); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
     webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); 

    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
    webView.getSettings().setDomStorageEnabled(true); 

    webView.setWebViewClient(new WebViewClient() { 

     String user = "username"; 
     String pass = "password"; 

     public void onPageFinished(WebView view, String url) { 
      view.loadUrl("javascript: {" + 
        "$('input#username').val(" + user + ");" + 
        "$('input#password').val(" + pass + ");" + 
        "$('button.uk-button-primary').click();" + 
        "};"); 
     } 

     public void onPageFinished2(WebView view, String url) { 
      view.loadUrl(url); 
     } 
    }); 

回答

1

Jquery似乎已经加载到页面上,所以你可以用它来填充e两个字段,然后点击提交按钮。

$('input#username').val("username"); 
$('input#username').val("password"); 
$('button.uk-button-primary').click(); 

只需将第一行上的val更改为要在引号内使用的用户名和第二行中的密码。

如果您使用的是谷歌浏览器,只需将此代码粘贴到控制台,它应该可以工作(假设您有正确的登录信誉)。

+0

你好,我试过它在谷歌铬和它的工作,但不是在我的代码:\ –

+0

你是什么意思,它没有工作?你有错误吗?还是它说你有错误的凭据? – MikeSchem

+1

你的回答是对的。但是我无法登录的实际原因是由于网站带来的安全问题。无论如何,我只是接受它作为答案。 –