roElectronEvent
If an roMessagePort is attached to an roElectron object, it will receive roElectronEvent objects when something happens to the parent roElectron instance.
ifUserData
SetUserData(user_data As Object)
Sets the user data that will be returned when events are raised.
GetUserData() As Object
Returns the user data that has previously been set via SetUserData()
. It will return Invalid
if no data has been set.
ifElectronEvent
GetData() As roAssociativeArray
Returns the event data as an associative array with the following key/value pairs:
reason
string: The cause of the event, which can be one of the following:process_exit
: The Electron instance has exited.message
: The Electron instance has sent a message.
exit_code
number:  The value of this field is set by the Electron application when it exits (www.electronjs.org/docs/api/app#appexitexitcode). The Electron process exit code is only defined in OS 8.2 and later OS versions. Note that the Electron script can also use these codes for its own purposes.Âmessage
string: If thereason
 field value isÂmessage
, this field returns the contents of the message.
Example
The following event loop waits for an Electron event and reports the events:
while true
ev = wait(0, gaa.mp)
print "=== BS: Received event ";type(ev)
if type(ev) = "roElectronEvent" then
eventData = ev.GetData()
if type(eventData) = "roAssociativeArray" and type(eventData.reason) = "roString" then
if eventData.reason = "process_exit" then
print "=== BS: Electron instance exited with code " ; eventData.exit_code
else if eventData.reason = "message" then
print "=== BS: Received message "; eventData.message
' To use this: msgPort.PostBSMessage({text: "my message"});
else
print "======= UNHANDLED ELECTRON EVENT ========="
print eventData.reason
endif
else
print "=== BS: Unknown eventData: "; type(eventData)
endif
endif
endwhile