我想在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错误。
答案 0 :(得分:1)
您需要通过设置WebView的WebClient来指定您想要自己处理点击。引自WebView tutorial:
要打开用户点击的链接,只需提供WebViewClient即可 您的WebView,使用setWebViewClient()。例如:
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
就是这样。现在,用户点击WebView中的所有链接。