問題タブ [native-module]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
51 参照

java - 反応ネイティブでAndroidネイティブモジュールにJavaリスナーライブラリを適用するには?

元のコードは、android studio で記述された「Temi SDK」コードです。これには、Java リスナー関数と、リスナーの実装からの関数オーバーライドが含まれています

結果はリスナー関数であり、オーバーライド関数が常に機能します。

このリスナーを、react-native アプリで使用するためのネイティブ モジュールとして使用しようとしています。リスナー関数のネイティブ モジュールのコードと、リスナーからの関数オーバーライドを使用します。「LifecycleEventListener」を使用して、android studio のような Java リスナーを追加できるかどうかはわかりません。その結果、LifecycleEventListener の「onHostResume」のリスナー関数は、アプリを開いたときに 1 回だけ動作します。

LifecycleEventListener の使い方を誤解していませんか? Javaリスナー関数をAndroidネイティブモジュールとして使用するにはどうすればよいですか?

0 投票する
0 に答える
19 参照

react-native - React Native - ネイティブ モジュールと JS のパフォーマンス

アプリでの価格計算を高速化する必要があります。現在、JS で製品アイテムを繰り返し処理し、各製品アイテムの価格を計算しています。ネイティブモジュールを使用して高速化できるのではないかと考えていました。でもそうでもないようですよね?

シンプルな C++ ネイティブ モジュールを performance.now() でテストすると、同等の JS よりも遅くなります。乗算の 20 回の反復の単なる for ループです。

ネイティブ モジュールを使用する場合、ある種のオーバーヘッド (JSON 解析?) があると思います。

最初に約束ベースの方法を使用してみましたが、最初の実行には約15msRCT_EXPORT_METHODかかります。

それから試してみRCT_EXPORT_BLOCKING_SYNCHRONOUS_METHODましたが、それでもJSよりも遅かったです。最初の実行には約0.4msかかりました。

JSの最初の実行には約0.0025 ミリ秒かかります。

価格を反復して計算するためのネイティブモジュールは悪い考えですか/JSよりも高速ではありませんか?

コード:

0 投票する
0 に答える
11 参照

react-native - remove() を使用した React Native NativeEventEmitters の削除が機能しない

私の場合: サードパーティのハードウェア デバイスに接続しています。SDK はネイティブなので、それをブリッジして、発生したイベントのリスナーを作成し、RN 側でキャッチする必要があります。一貫した UI を実現するために、また SDK の制限的な性質により、ユーザーがデバイスを使用するたびに新しい接続を作成する必要があります (これはユーザーが吹き込むものです)。そして、新しい接続ごとに、新しいエミッターのセットを作成する必要があります。

私の問題: ネイティブ Android 側 (サード パーティの SDK イベント) でイベントをリッスンする多くのリスナーを登録します。

各エミッターをコンポーネント配列に追加します。画面から移動すると (画面削除イベントではないため、ComponentWillUnmount に依存できません)、配列を反復処理し、各エミッターで remove() を呼び出します。

このページにアクセスするたびに、新しいエミッターを再作成しようとします。ただし、もう一度画面にアクセスすると、コンソールにエミッターを記録しても、古いエミッターはまだイベントを出力しています。

出力例:

"フロー":[null,{"eventType":"フロー","キー":1}]

機能: