在android webview中加载静态页面

时间:2017-03-08 19:14:49

标签: android jquery html webview

我想在webview中加载静态网页,所以我可以将它用作网站。但锚链接或重定向不起作用,当我点击一个链接时,它不会加载到webview中,但它会被另一个带有404错误的HTML查看器应用程序打开。所以,我只想让每个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 个答案:

答案 0 :(得分:1)

您需要通过设置WebView的WebClient来指定您想要自己处理点击。引自WebView tutorial

  

要打开用户点击的链接,只需提供WebViewClient即可   您的WebView,使用setWebViewClient()。例如:

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

就是这样。现在,用户点击WebView中的所有链接。