- 22
- 1
Привет всем, решил заняться изучением CEF, читал документацию с подключение разобрался, на сервере отображается корректно, но.
Я решил по документации сделать авторизацию аккаунта, но скрипт не реагирует на кнопку и текст поля, пожалуйста, помогите.
Pawn code:
HTML:
Разобрался сам, если кто-то встретится с данной проблемой. Решение:
Заменить addEventHandler на addEventListener
Я решил по документации сделать авторизацию аккаунта, но скрипт не реагирует на кнопку и текст поля, пожалуйста, помогите.
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
Последнее редактирование: