私は
electron を使用してエディターに似たアプリケーションを作成しています。アプリケーションのメニュー バーにファイル保存機能があります:
メニュー バーはメイン スレッドにありますが、保存操作ではレンダリング スレッドのエディターでコンテンツを取得する必要があるためです。公式 Web サイトには、メイン スレッドを要求するレンダリング スレッドの例 (
ipcMain とipcRenderer) を実行しますが、 ipcMain
ipcRenderer
. を積極的にリクエストすることはできないようです。
そこで皆さんにお聞きしたいのですが、メインスレッドはどのようにしてレンダリング スレッドに積極的にリクエストして、レンダリング スレッドのメソッドを呼び出したり、レンダリング スレッドのイベントをトリガーしたりするのでしょうか?
解決策が見つかりました^_^
イベント内で対応するデータを持ち運ぶ
ipcメイン:ipcMain
和ipcRenderer
中同时监听两个相同名字的事件,然后在主线程中使用focusedWindow.webContents.send('save-file')
触发ipcRenderer
的save-file
事件,在ipcRenderer
的save-file
事件中请求ipcMain
的save-file
リーリー
ipcレンダラー:リーリー
最初にイベントをレンダリング スレッドにバインドできます。たとえば、
ipcRenderer.on('save', save);
,然后在用户点击菜单中的 Save 时触发这个事件,然后在save
関数でイベントをブロードキャストし、必要なデータを渡します。少し複雑ですが、今のところ思いつくのはこれだけです。