Wakelock service
Create or retrieve this service with page.wakelock(**properties). Ruflet reuses the registered service unless you supply a different id.
Example
status = text(value: "Keeping the screen awake…")
page.add(status)
wakelock = page.wakelock
wakelock.enable(on_result: ->(_result, error) {
page.update(status, value: error ? error.to_s : "Wakelock enabled")
})
Page accessor
page.wakelock(**props)
Properties
data— Arbitrary value you can attach to the control and read back in handlers.key— Stable identity used to preserve state across rebuilds.
Page proxy methods
Calling page.wakelock with no properties returns a focused proxy with these methods:
disable(timeout: ..., on_result: ...)enable(timeout: ..., on_result: ...)is_enabled(timeout: ..., on_result: ...)
Result and error handling
Client calls are asynchronous. When a method accepts on_result:, handle both callback values: |result, error|. Availability and returned data can vary by platform.
Common service API
The service also supports the common Ruflet control API: attach_handler(event_name, handler), children, emit(event_name, event), has_handler?(event_name), id, merge_props(values = ...), on(event_name, &block), props, runtime_page, runtime_page=, to_patch, type, wire_id, wire_id=.
Use the named methods above for application code; common control methods mainly support event registration, updates, and runtime integration.
Wire reference
- Service helper:
wakelock - Wire type:
wakelock