Внешний JavaScript

onDocumentLoad/onDomLoaded/Ready не сработает потому что код БП выполняется позже.

Самый простой способ проверить корректно ли работает ваш код - просто запустить его в консоли браузера если есть такая возможность.

Мне кажется код неверный - Telegram скорее всего undefined.

@OlegSotnikov код рабочий, проверяли и запускали, данные, получаемые от Телеграмма уже смотрели.

А каким образом запускать скрипты после загрузки страницы? получается что скрипт не выполняется, так как он не успевает отработать, а страница уже загрузилась. (Отсюда так же видим, что скрипт может сработать после перехода на другое меню)

Можно попробовать повесить на onAppLaunch

@OlegSotnikov не понятно как все отрабатывает.

  1. Значит я провел эксперементы как отрабатывают разные методы запуска скриптов. Запускал простой скрипт alert('Привет, мир!'); :
  • script tag в настройках приложения
  • Trigger onAppLaunch БП Execute JS
  • БП Execute JS на элемент страницы

Во всех случаях скрипт отрабатывает с первого раза, все отлично.

Далее пытаемся прогнать по тому же сценарию наши скрипты (которые уже потяжелее) и видим несколько вариантов разворота событий, при чем не понятно как и от чего они зависят:

  • Скрипт вообще не отрабатывает и выдает в консоль ReferenceError: Can't find variable: $, хотя выше инициализируется скрипт jquery (при чем отрабатывал пару часов назад с теми же настройками)
  • Скрипт отрабатывает после релоада страницы, не с первого раза, а раза со второго или третьего

Такое ощущение, что он вообще пропускает скрипт и не выполняет его, не успевает или еще что-то. Нужно разбираться.

Скрипт точно рабочий, потому что он бывает то отрабатывает, просто не с первого раза. Я об этом же завел багу тут Header Javascript [APP-8586]

Абсолютно непонятное поведение со скриптами.
Будем очень благодарны, если поможете разобраться, так как это одна из последних тяжелых проблем перед запуском нашего MVP.

@OlegSotnikov и может у вас уже есть новости по реализации модуля для telegram miniapps?

Мы работаем над решением - временным или модулем. Дам апдейт в течении 1-2 дней.

1 Like