簡體   English   中英

在android webview中加載靜態頁面

[英]load static pages in android webview

我想在 webview 中加載靜態網頁,以便我可以將其用作網站。 但是錨鏈接或重定向不起作用,當我單擊鏈接時,它不會加載到 web 視圖中,但它會被另一個 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");
    }
}

索引.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 錯誤。

您需要通過設置 WebView 的 WebClient 來指定您要自己處理點擊。 引自WebView 教程

要打開用戶單擊的鏈接,只需使用 setWebViewClient() 為您的 WebView 提供一個 WebViewClient。 例如:

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

就是這樣。 現在,用戶點擊的所有鏈接都加載到您的 WebView 中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM