Помощь с CEF

Pawn.Sapph1re

Новичок
Автор темы
22
1
Привет всем, решил заняться изучением CEF, читал документацию с подключение разобрался, на сервере отображается корректно, но.

Я решил по документации сделать авторизацию аккаунта, но скрипт не реагирует на кнопку и текст поля, пожалуйста, помогите.

Pawn code:
C++:
#define LOGIN_BROWSER_ID 0x12345
#define LOGIN_BROWSER_URL "http://trusted-checker.ru/test.html"

forward OnLogin(player_id, const arguments[]);

forward OnCefInitialize(player_id, success);
public OnCefInitialize(player_id, success) {
    if (success == 1) {
        cef_create_browser(player_id, LOGIN_BROWSER_ID, LOGIN_BROWSER_URL, false, true);
        return;
    }

    SendClientMessage(player_id, -1, "Ahh to bad you cannot see our new login page ...");
    // show a dialog as you would do without a plugin
}

forward OnCefBrowserCreated(player_id, browser_id, status_code);
public OnCefBrowserCreated(player_id, browser_id, status_code) {
    if (browser_id == LOGIN_BROWSER_ID) {
        if (status_code != 200) {
            // fallback to dialogs ...
            return;
        }

        // subscribe on a login event
        cef_subscribe("loginpage:login", "OnLogin");
    }
}

public OnLogin(player_id, const arguments[])
{
    SendClientMessage(player_id, -1, !"Вы успешно авторизовались");
    // get a user password and compare it with a passed string
    new success = !strcmp("123123", arguments);

    // send a response status to the player
    // CEFINT(value) for integers
    // CEFFLOAT(value) for floats
    // CEFSTR(value) for string ...
    // cef_emit_event(player_id, "someevent", CEFINT(0), CEFFLOAT(25.51), CEFSTR("hellow!"));
    cef_emit_event(player_id, "loginpage:response", CEFINT(success));

    if (success) {
        // your code when user is logged in
        SendClientMessage(player_id, -1, !"Вы успешно авторизовались");
    }
}

HTML:

HTML:
<!DOCTYPE html>
<html>
<body>
    <div>
        <!-- your login page here ... -->
        <button id="0" type="0">Login</button>
        <input type="password" name="somepassword">
    </div>
    <script>
        const sendCredButton = 0; // document.getElementById for example

        // subscribe to the login response
        cef.on("loginpage:response", (success) => {
            if (success) {
                // show something or do somethig on the page
                showSuccessStatusAndSomethingElse();

                // hide a web page in 5 seconds
                setTimeout(() => cef.hide(true), 5000);

                return;
            }

            // make your function to show an error
            showErrorOnPage("Wrong password, try again.");
        });

        sendCredButton.addEventHandler("click", () => {
            const input = "somepassword"; // get the real string from the input box

            // send a password to the server
            cef.emit("loginpage:login", input);
        });
    </script>
</body>

</html>

Разобрался сам, если кто-то встретится с данной проблемой. Решение:

Заменить addEventHandler на addEventListener
 
Последнее редактирование: