...
Expand | ||
---|---|---|
| ||
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 the
reason
field value ismessage
, this field returns the contents of the message.
Example
The following event loop waits for an Electron event and reports the events:
Code Block | ||
---|---|---|
| ||
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 |