Закрывается TelegramWebApps при нажатии на кнопку

На веб странице находится кнопка и счетчик нажатий на нее. При нажатии на кнопку клик должен отправляться в самого бота telebot и заносить этот клик как +1 в бд. Но при нажатии на кнопку веб приложение закрывается и отправляется только 1 клик. Как это решить или может стоит заносить данные в базу данных в самом html файле в скрипте?

<!doctype html>
<html lang="ru">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>BestShop</title>
  <style>
    @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@200;500&display=swap');
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    
    .image-coin {
      margin-top: 10%;
      margin-left: 25%;
      width: 200px;
      height: 200px;
      border: none;
      border-radius: 50%;
      background-image: url('https://i.sstatic.net/3KjKpAQl.jpg');
      background-size: 111%;
      background-position: 50% 50%;
    }
  </style>
</head>

<body>
  <div>
    <p>Clicks: <a id="clicks">0</a></p>
    <button id="coin_click" class="image-coin" onClick="onClick()"></button>
  </div>
  <script src="https://telegram.org/js/telegram-web-app.js"></script>
  <script>
    let tg = window.Telegram.WebApp;
    let coin_click = document.getElementById("coin_click")

    var clicks = 0;

    function onClick() {
      clicks += 1;
      document.getElementById("clicks").innerHTML = clicks;
      if (!tg.MainButton.isVisible) { // Проверяем, что пользователь не видит кнопку
        tg.MainButton.show(); // Отображаем кнопку
      }
    }

    coin_click.addEventListener("click", () => {
      let data = {
        clicks: clicks
      }

      tg.sendData(JSON.stringify(data));
    })
  </script>
</body>

</html>

import telebot
import json

from config import token
from telebot import types
from telebot.types import WebAppInfo

bot = telebot.TeleBot(token, parse_mode=None)


@bot.message_handler(commands=['start'])
def start_message(message):
    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    button = types.KeyboardButton(text="Тестовая страница", web_app=WebAppInfo(web_url))
    keyboard.add(button)
    bot.send_message(message.chat.id, "Привет :)", reply_markup=keyboard)


@bot.message_handler(content_types=['web_app_data'])
def web_app(webAppMes):
    data = json.loads(webAppMes.web_app_data.data)

    print(data['clicks'])


bot.infinity_polling(none_stop=True)


Ответы (0 шт):