2017-03-08 4 views
1

정적 웹 페이지를 webview에로드하려고하므로 웹 사이트를 사용할 수 있습니다. 앵커 링크 나 리디렉션이 작동하지 않습니다. 링크를 클릭하면 웹보기에로드되지 않지만 404 오류가있는 다른 HTML 뷰어 앱에서 열립니다. 그래서, 간단히 말해 각 URL을 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 페이지로 이동하지만, 같은되어야한다 I 이전에 요청한 페이지는 404 오류가있는 다른 앱에 의해 열립니다.

답변

1

WebView의 WebClient를 설정하여 클릭 수를 직접 처리하도록 지정해야합니다. WebView tutorial에서 인용 :

는 사용자가 클릭 링크를 열하려면) (setWebViewClient를 사용하여, 당신의 웹보기에 대한 WebViewClient를 제공합니다. 예를 들면 : 그것 뿐이다

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

. 이제 사용자가 WebView에서로드하는 모든 링크.

관련 문제