Reference
Arcane.applications.launch()
Asks the host to dispatch a registered application. Acceptance does not prove that the target rendered, became ready, or remained open. The RPC authority name is apps.launch.
This focused page is derived from the mechanically checked full member inventory.
Syntax
Arcane.applications.launch(id)
Parameters
Canonical application ID from the current catalog
Return value
Promise<{id, accepted:true}>
Description
Asks the host to dispatch a registered application. Acceptance does not prove that the target rendered, became ready, or remained open. The RPC authority name is apps.launch.
Overview
Arcane.applications.launch(id) asks the host to dispatch one installed
application from the catalog returned by applications.list(). It is a
non-idempotent application-dispatch operation. The method is available only to
the bound shell or terminal application with applications.launch on Core
or Android.
Pass the unchanged canonical id from the current catalog. It must be a lower-case hyphenated application id no longer than 64 characters; reserved host identities such as Shell and Provisioner are not application launch targets. Android additionally requires the generated APK to be installed and launchable.
Result and lifecycle
The exact result is { id, accepted: true }. accepted means the host accepted
the dispatch request. It does not prove that the target rendered successfully,
became ready, or remained open. There is no portable public launch-completion
event, so do not wait for one or retry automatically after an ambiguous
transport failure.
Errors and recovery
Use the current catalog again after APPLICATION_NOT_FOUND. Wait for an active
installation or application shutdown after APPLICATION_INSTALL_BUSY or
APPLICATIONS_BUSY. INVALID_APPLICATION_ID and
INVALID_APPLICATION_REQUEST indicate caller input. Adapter or dispatch
failures use APPLICATION_ADAPTER_UNAVAILABLE,
APPLICATION_LAUNCH_FAILED, or APPLICATION_LAUNCH_REJECTED; repair the host
if a catalog-listed application repeatedly fails.
Example
document.querySelector('#launch-files')?.addEventListener(
'click',
async function handleApplicationLaunch() {
const catalog = await Arcane.applications.list();
const filesApp = catalog.applications.find(function findFilesApp(application) {
return application.id === 'files';
});
if (!filesApp) return;
const launch = await Arcane.applications.launch(filesApp.id);
console.log('Dispatch accepted', launch.id, launch.accepted);
}
);