2017-03-08 6 views
1

静的なウェブページをウェブビューで読み込みたいので、ウェブサイトを使用できます。アンカーリンクやリダイレクトは機能しません。リンクをクリックするとwebviewに読み込まれませんが、別のHTMLビューアアプリケーションで404エラーが表示されます。ですから、単に各URLを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から引用:

単にsetWebViewClient()を使用して、 あなたのWebViewのためのWebViewClientを提供し、ユーザーがクリックしたリンクを開くには。例えば:それだ

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

。ユーザーがクリックしたすべてのリンクがWebViewにロードされるようになりました。

関連する問題