событие обработки конденсатора ioni c из кода Android Java - PullRequest
2 голосов
/ 12 апреля 2020

Я использую ионный c -реактор и конденсатор. Мне нужно вызвать событие из Android собственного кода и обработать его из JavaScript. Вот мой тестовый код:

В MainActivity. java:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Initializes the Bridge
    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Additional plugins you've installed go here
      // Ex: add(TotallyAwesomePlugin.class);
    }});
    new Handler().postDelayed(new Runnable() {
      @Override
      public void run() {
        bridge.triggerWindowJSEvent("MyPushEvent", "test");
      }
    }, 25000);
  }

В App.tsx

window.addEventListener("MyPushEvent", function (msg) {
    console.log("Push Event: " + msg);
    alert("Window Push Event: " + msg);
  });

По сути, я вызываю bridge.triggerWindowJSEvent в onCreate после долгой задержки, убедившись, что обработчик событий на клиенте был добавлен. Однако на стороне клиента ничего не происходит.

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 12 апреля 2020

Я думаю, что это не будет сделано таким образом, поскольку смысл в приложениях ioni c состоит в том, чтобы сначала запустить основную деятельность, которая является основной деятельностью, и после того, как основная деятельность запускается, начинается запуск метода для запуска индекса. html, поэтому все страницы приложения будут запущены в рамках основного действия. Прежде чем добиться этого, я сделал 2 обработчика, первый - пост-задержка на 1500 мс, внутри которой будет запуск индекса. html, а другой обработчик использует метод post вместо postdelayed, поскольку post будет добавленный в очередь обработчика, таким образом, будет добавлен к первому обработчику отложенных сообщений, поэтому после запуска приложения через 2500 мс затем будут запущены app.tsx или app.ts в cordova, и, таким образом, мы готовы принять событие, поэтому после этих 2500 мс мы добавьте handler.post (.. runnable ... и внутри него запустите ваше событие и получите его в app.tsx.

...