ApiPyloid
PyloidIPC
PyloidIPC enables communication between JavaScript and Python via IPC (Inter-Process Communication). It allows JavaScript code running in the browser window to call Python methods and receive responses.
Initialization
from pyloid.ipc import PyloidIPC
class CustomIPC(PyloidIPC):
pass
Bridge Decorator
Bridge
Creates a slot that can be called from JavaScript via IPC.
from pyloid.ipc import PyloidIPC, Bridge
class CustomIPC(PyloidIPC):
@Bridge(str, result=str)
def echo(self, message):
return f'Message received in Python: {message}'
Usage Example
(Python)
from pyloid import Pyloid
from pyloid.ipc import PyloidIPC, Bridge
app = Pyloid('Pyloid-App')
class CustomIPC(PyloidIPC):
@Bridge(str, result=str)
def echo(self, message):
return f'Message received in Python: {message}'
@Bridge(int, int, result=int)
def add(self, a, b):
return a + b
@Bridge(result=str)
def create_window(self):
win = self.pyloid.create_window(title='Pyloid Browser')
win.load_url('https://www.google.com')
win.show()
win.focus()
return win.get_id()
# Create main window
window = app.create_window(
title='Pyloid Browser',
ipc=[CustomIPC()],
)
window.load_file('index.html')
window.show()
window.focus()
app.run()
(JavaScript)
import { ipc } from 'pyloid-js';
let result = await ipc.CustomIPC.echo('Hello, Pyloid!').then((result) => {
console.log(result); // "Message received in Python: Hello, Pyloid!"
})
let sum = await ipc.CustomIPC.add(5, 3).then((sum) => {
console.log(sum); // 8
})
let window_id = await ipc.CustomIPC.create_window().then((window_id) => {
console.log(window_id); // "eae338a3-c8cb-4103-852f-404486beea0d"
})