【问题标题】:How to call Java methods in React Native before startReactApplication has been called在调用 startReactApplication 之前如何在 React Native 中调用 Java 方法
【发布时间】:2018-09-05 14:04:43
【问题描述】:

在我们的 Android 应用程序中,我尽快初始化 React Native JS 代码,因为我有一些 JS 代码在后台运行,即使当前没有 React Native 视图可见。我通过调用 ReactInstanceManager#createReactContextInBackground() 来做到这一点。

这可行,并且 JS 代码被初始化,但在我实际打开调用 ReactRootView#startReactApplication() 的 React Native 视图之前,我似乎无法调用任何带有 @ReactMethod 注释的 Java 方法。如果我在此之前尝试调用任何本机方法,则不会发生任何事情,但似乎这些调用被添加到队列中,然后最终在 React 视图打开时被拾取。

使用setTimeout() 设置的计时器似乎也是如此。当没有视图打开时,他们只是不会被调用。所以看起来 JS 被评估了,但是 JS 引擎还没有“运行”。

如何在打开任何 React 视图之前确保引擎正常运行?

【问题讨论】:

    标签: javascript android react-native


    【解决方案1】:

    让你的第一个 RN View 调用一个 @ReactMethod,它将在 Java 中设置一个标志。在设置标志之前让您的 Java 代码不执行任何操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多