2016-12-13 41 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

你的回答是對的。但是我無法登錄的實際原因是由於網站帶來的安全問題。無論如何,我只是接受它作爲答案。 –