Android webapp, загрузка другого HTML - PullRequest
0 голосов
/ 04 августа 2020

Я создаю 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);

1 Ответ

0 голосов
/ 04 августа 2020

У вас есть эта ошибка:

 @JavascriptInterface
    public void goToRegister() {
        context.goToRegister();
    }

здесь "context" доза не имеет объявленного метода "goToRegister ()".

public class WebAppInterface {
    MainActivity mActivity;


    WebAppInterface(MainActivity a) {
        mActivity = a;
    }


  @JavascriptInterface
    public void goToRegister() {
        mActivity.goToRegister();
    }
}

Надеюсь, это сработает ... Желаем удачи .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...