Pular para o conteúdo
CloudClick iOS

Apps & sessions

Open, switch to and terminate apps, and query their state. Opening and switching both go through client.session, which also sets up the automation session.

client.session#

Open (or switch to) the app and set up an automation session for it. Usually called at the top of a script.

typescript
client.session(bundleId: string): Client;

Parâmetros

NomeTipoObrigatórioPadrãoDescrição
bundleIdstringSim—The app's bundle ID, for example com.apple.Preferences (Settings).

Valor de retorno

TipoDescrição
ClientA client bound to the new session. You rarely need it: keep using the global client, which follows the current session on its own.

Observações

  • A locked device is unlocked first (only works without a passcode).

Exemplo

javascript
client.session('com.apple.Preferences');
sleep(2);
clickElement('label', 'General', 5);

Veja também client.appTerminate、client.appCurrent

client.appTerminate#

Terminate the app's process. To start every round from the app's initial state, terminate it and then open it with client.session.

typescript
client.appTerminate(bundleId: string): object;

Parâmetros

NomeTipoObrigatórioPadrãoDescrição
bundleIdstringSim—The app's bundle ID, for example com.apple.Preferences (Settings).

Valor de retorno

TipoDescrição
objectThe raw WDA response; rarely needed.

Exemplo

javascript
client.appTerminate('com.zhiliaoapp.musically');
sleep(randomFloat(1, 2));
client.session('com.zhiliaoapp.musically');

Veja também client.session

client.appState#

Query the app's run state.

typescript
client.appState(bundleId: string): { value: number };

Parâmetros

NomeTipoObrigatórioPadrãoDescrição
bundleIdstringSim—The app's bundle ID, for example com.apple.Preferences (Settings).

Valor de retorno

TipoDescrição
{ value: number }value is the state: 1 not running, 2 suspended in the background, 3 running in the background, 4 in the foreground.

Exemplo

javascript
var state = client.appState('com.zhiliaoapp.musically');
if (state.value !== 4) {
  client.session('com.zhiliaoapp.musically');
}

Veja também client.appCurrent

client.appCurrent#

Information about the app in the foreground.

typescript
client.appCurrent(): { bundleId: string; name: string; pid: number };

Valor de retorno

TipoDescrição
{ bundleId, name, pid }The foreground app's bundle ID, name and process ID.

Exemplo

javascript
var app = client.appCurrent();
logi(app.bundleId);

Veja também client.appState

isAppInstalled#

Whether an app is installed on this device.

typescript
isAppInstalled(bundleId: string): boolean;

Parâmetros

NomeTipoObrigatórioPadrãoDescrição
bundleIdstringSim—The app's bundle ID, for example com.apple.Preferences (Settings).

Valor de retorno

TipoDescrição
booleanTrue when installed (running or not), false when not.

Exceções

ExceçãoLançada quando
WDAErrorINVALID_ARGUMENTbundleId is missing or not a string.

Observações

  • If the check itself fails (for example the device's automation service does not answer) it throws instead of returning false, so the script does not take the wrong branch.

Exemplo

javascript
if (!isAppInstalled('com.zhiliaoapp.musically')) {
  loge('TikTok is not installed');
  return false;
}
client.session('com.zhiliaoapp.musically');

Veja também appList、client.appState

appList#

The apps running right now, in the foreground or background. This is not the list of installed apps; use isAppInstalled for that.

typescript
appList(): { pid: number; bundleId: string }[];

Valor de retorno

TipoDescrição
{ pid, bundleId }[]The process ID and bundle ID of each running app.

Exemplo

javascript
var apps = appList();
for (var i = 0; i < apps.length; i++) {
  logi(apps[i].bundleId);
}

Veja também isAppInstalled、client.appCurrent