【发布时间】:2020-08-04 01:59:24
【问题描述】:
我正在为使用 WebView 的简单登录\注册创建一个 Android 网络应用程序。 我的 HTML 页面有一个注册按钮(在 login.html 上),应该将用户从登录页面带到注册页面。
我的问题是,无论我使用什么方法从页面跳转,都无济于事。
我的登录.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);
【问题讨论】:
标签: javascript android html