2017-03-08 137 views
1

我想在webview中加載靜態網頁,所以我可以使用它的網站。但錨鏈接或重定向不起作用,當我點擊一個鏈接時,它不會加載到web視圖中,但會被另一個具有404錯誤的HTML查看器應用程序打開。所以,我只想讓每個網址在webview中加載。在android webview中加載靜態頁面

活動:

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.webkit.WebView; 

public class MainActivity extends AppCompatActivity { 

    WebView wb; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     wb = (WebView) findViewById(R.id.webview); 
     wb.getSettings().setJavaScriptEnabled(true); 
     wb.loadUrl("file:///android_asset/index.html"); 
    } 
} 

的index.html:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"/> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"/> 
     <meta name="viewport" content="width=device-width, initial-scale=1"/> 
     <link rel="stylesheet" type="text/css" href="file:///android_asset/style.css"/> 
     <title></title> 
    </head> 
    <body> 
     <div class="container"> 

       <div class="row"> 
        <label for="username">USERNAME</label> 
        <input type="text" id="username" class="text-input"/> 
       </div> 
       <div class="row"> 
        <label for="password">PASSWORD</label> 
        <input type="password" id="password" class="text-input"/> 
       </div> 
       <div class="row" id="error"></div> 
       <div class="row"> 
        <button id="login" class="submit">LOGIN</button> 
       </div> 
      <a href="file:///android_asset/nearby.html">Next Page</a> 
     </div> 

     <script type="text/javascript" src="jquery-2.1.1.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function(){ 
       var errors = 0; 
       $('#login').click(function(e){ 
        if(validate() === 0){ 
         if($('#username').val() === 'user' && $('#password').val() === 'pass'){ 
          window.location.href = 'file:///android_asset/nearby.html'; 
         } else{ 
          $('#error').html('username or password is incorrect !').show(); 
         } 
        } 
       }); 
       function validate(){ 
        checkInput($('#username')); 
        checkInput($('#password')); 
        console.log(errors); 
        return errors; 
       }; 
       function checkInput(element){ 
        if(element.val() === ''){ 
         element.css('border','2px solid #ff0000'); 
         errors++; 
        } else{ 
         element.css('border','none'); 
         if(errors > 0) 
          errors = errors - 1; 
        } 
       }; 
      }); 
     </script> 
    </body> 
</html> 

例如,頁面應該被重定向到nearby.html頁面,當用戶輸入的用戶名和密碼的正確的價值觀,但我之前說過,請求的頁面將被另一個應用程序打開,並出現404錯誤。

回答

1

您需要指定您想要自己處理點擊操作,方法是設置WebView的WebClient。從WebView tutorial報價:

要打開用戶點擊鏈接,只是爲 您的WebView提供WebViewClient,使用setWebViewClient()。例如:

WebView myWebView = (WebView) findViewById(R.id.webview); 
    myWebView.setWebViewClient(new WebViewClient()); 

就是這樣。現在,用戶點擊WebView中的所有鏈接。