Я создаю Android веб-приложение для простого входа \ регистрации с помощью WebView. Моя страница HTML имеет кнопку регистрации (при входе в систему. html), которая должна переводить пользователя со страницы входа на страницу регистрации.
Моя проблема в том, что независимо от того, какой метод я использую для go со страниц ничего не работает.
Мой логин. HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-3.5.1.js"></script>
</head>
<body>
<link rel="stylesheet" href="css/style.css">
<form action="index.html" method="post">
<div class="imgcontainer">
</div>
<h1>Login</h1>
<div class="container">
<label><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="uname" required>
<label><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="psw" required>
<button type="submit">Login</button>
<label>
<input type="checkbox" checked="checked" name="remember"> Remember me
</label>
</div>
<div class="container">
<span><p>New User?</p>
<button type="button" id="regbtn">Register</button>
</span>
</div>
</form>
<script>
$("#regbtn").on("click",function(){
app.goToRegister();
});
</script>
</body>
</html>
Как я создал goToRegister()
:
@JavascriptInterface
public void goToRegister() {
context.goToRegister();
}
public void goToRegister(){
String reg = "register.html";
//webView.loadUrl("javascript:myFunction(\""+reg+"\")");
webView.loadUrl("file:///android_asset/register.html");
}
Я реализовал тот же метод на моем function.js
, и в качестве функции в login.HTML
ни один из них не работал. Конечно, когда я пытался использовать метод из function.js
, кнопка HTML была другой.
Обе страницы находятся в одном локальном проекте. Когда я нажимаю кнопку, ничего не происходит.
РЕДАКТИРОВАТЬ:
У меня включены все необходимые javascript параметры:
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webViewJavaScriptInterface = new WebViewJavaScriptInterface(this);
webView.addJavascriptInterface(webViewJavaScriptInterface,"app");
webView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
WebView.setWebContentsDebuggingEnabled(true);