首页 > 解决方案 > 离子反应本机-> js 通信

问题描述

我是一般的离子电容器和 javascript 的原生 Android/iOS 开发人员。我正在尝试将数据从 Android 的 OnNewIntent 回调发送到我正在处理的 ionic-react 项目。我在扩展 BridgeActivity 的本机 MainActivity.java 中执行此操作:

  @Override
  protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    getBridge().triggerDocumentJSEvent("MyEvent","blah");
  }

在我的 App.tsx 文件中,我有这样的内容:

const App: React.FC = () => {
  const onMyEvent = (input: string): void => {
    console.log('event received: ${input}');
  };

  useEffect(() => {
    document.addEventListener('MyEvent', () => {
      console.log('MyEvent document');
      onMyEvent(it.name);
    });

    window.addEventListener('MyEvent', () => {
      console.log('MyEvent window');
      onMyEvent(it.name);
    });
  }, []);

但我一生都无法通过从本机 Activity 到 App.tsx 文件的消息。我尝试在 Activity 恢复后将触发器延迟最多 15 秒,以确保每个人都被实例化,但我仍然没有看到消息已收到的迹象。有没有一种简单的方法可以从本机层通信到我缺少的电容器层?是不是这些早期的 Android 生命周期事件发生在 ionic 侦听器有机会注册之前?只是试图在渲染第一个屏幕之前将只有本机端知道的启动数据发送到离子端。

谢谢!斯科特

标签: androidreact-nativeionic-frameworkionic-react

解决方案


推荐阅读