問題タブ [react-native-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.
android - 反応ネイティブ: Android ネイティブ モジュール内に表示される JS ビューから反応ネイティブ ライブラリにアクセスする方法
ボタンを押すと Android ネイティブ モジュールが読み込まれる、react-native アプリケーションを作成しました。呼び出されると、ネイティブ モジュールは、Presentation クラスを ( https://github.com/commonsguy/cwac-presentationと共に) 使用して 2 番目のモニター ディスプレイ (chromecast、miracast など) を制御する Android アクティビティを開始します。私はこれをすべてうまく機能させました。
次の段階は、ネイティブ モジュールを使用して、反応ネイティブ ビューを 2 番目のモニターに表示することでした。これは、ReactRootView と ReactInstanceManager を使用して実現できました ( https://facebook.github.io/react-native/docs/integration -with-existing-apps )。Android ネイティブ モジュールは、ルートの react-native アプリケーションから react-native ビューを読み込みます。
(「JsPresentationView」は、表示される反応ネイティブ ビューの名前です)
React-native ビューがプレゼンテーション画面に表示される一方で、モバイル画面には Android ビューが表示されます。これは、RCTDeviceEventEmitter を使用して、反応ネイティブ タイマーにイベントを送信します。EG でタイマー ビューを再生/一時停止:
(「TogglePlayback」は、react-native ビューに対して発生するイベントの名前です)
私が見つけた問題は、ReactRootView によって読み込まれた反応ネイティブ ビューから、ルートの反応ネイティブ アプリケーションにインポートされた反応ネイティブ ライブラリにアクセスしようとすることです。メインの反応ネイティブ機能のメインの反応ネイティブ ライブラリにアクセスできますが、他のインポートは常に null として返されます。たとえば、「react-native-audio-toolkit」を使用して、2 番目の画面表示の react-native ビューで音楽を再生しようとしています。
次のエラーをスローします: react-native エラー画面。 反応ネイティブ ビューはメインの反応ネイティブ ライブラリにアクセスできるため、これらの問題はネイティブ モジュールの build.gradle が原因であると考え始めていました。
(上記のディレクトリの例は、$rootDir からネイティブ モジュールをインポートする react-native アプリケーションの場所です)
build.gradle にさまざまな更新を試みて、react-native-audio-toolkit ライブラリを含めましたが、これが問題の本当の原因であるかどうかはわかりません。反応ネイティブライブラリを提示された反応ネイティブビューに転送するために、上記のbuild.gradleから何かが欠けているかどうかは誰にも分かりますか? または、私が達成しようとしていることが可能である場合はどうなりますか?
反応ネイティブ プレゼンテーション ビューを独自の反応ネイティブ プロジェクトに分離することで問題を回避できると思いますが、可能であれば同じプロジェクトに保持したいと考えています。
react-native - React-Native コードはプラットフォーム モジュールをインポートせずに機能します。なぜですか?
このコードをhome/index.js
ファイルに追加しました
しかし、博覧会に公開した後。Platform
モジュールをインポートしていないことに気づきました。
通知チャネルが作成され、エラーがスローされないのはなぜですか?
プロジェクトにはグローバル変数がありません。