unable to get electron objects, such as session, browserWindow
Closed this issue · 2 comments
Hi
Probably I'm doing something in the wrong way, but this is what I want to achieve:
I want to get a session, cookie, and some other objects available from the electron for the client JS
In order to do so I've added
const electron = require('electron');
into index.js of my app.
When I log the object, it only shows the following properties/methods:
clipboard: (...)
contextBridge: (...)
crashReporter: (...)
desktopCapturer: (...)
ipcRenderer: (...)
nativeImage: (...)
shell: (...)
webFrame: (...)
deprecate: (...)
get clipboard: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
get contextBridge: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
get crashReporter: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
get desktopCapturer: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
get ipcRenderer: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
get nativeImage: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
get shell: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
get webFrame: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
get deprecate: ()=>{const t=e();return t.__esModule&&t.default?t.default:t}
__proto__: Object
tried to do this too
const { session } = require('session')
with no luck - object is undefined
in the same timeconst path = require('path')
works.
in general, it would be nice to get some instructions on how to get electron modules available for client js
I see that you have a lot of objects imported in the compiled code: output/darwin-amd64/mytest.app/Contents/MacOS/vendor/astilectron/index.js but I can not understand how to make it work (get access to them) on my js.
p.s.
The main reason why I need this - it looks like cookies are not always refreshed when I close the app, so when I reopen it again I see that it uses an old one, so to prevent this I want to call cookies.flushStore().
That is why I want to get the cookie from electron
You need to use the remote
module to access session
. However this module is deprecated and this won't work once astilectron
uses version 12+ of Electron
.
Therefore you have 2 solutions for your problem:
- you still want to use the
remote
module (but you will have to manageElectron
version manually). For that you'll need to set this attribute totrue
and then in your JS call something likeconst { session } = require('electron').remote
to get the session (and then usesession.defaultSession.cookies
to get cookies) - we add a
FlushCookiesStore()
method to the GOSession
struct. For that you'll need to create a PR, for which I'll guide you.
Thank you very much for the answer. I'll try option 1 to make sure that I can get the result I wanted, I'm not familiar with the GO. If that works I'll see if I manage to do (2)