Объект приложения
01.04.2019
Новости, документацию по DroidScript API, пошаговые уроки и другую интересную информацию вы можете посмотреть на официальном сайте http://droidscript.org/. А мы переходим к рассмотрению методов и свойств объекта приложения app.
Объект приложения app является основным и главным объектов DroidScript API. Он создаётся автоматически при создании приложения и освобождается автоматически при закрытии приложения. Конструктор объекта называется App.
Объект приложения реагирует на следующие системные события:
- OnStart - создание приложения
- OnMenu - выбор элемента всплывающего меню приложения
- OnDrawer - выдвигается или задвигается выдвижное меню
- OnBack - нажатие на системную кнопку Back (при выключенном её действии по умолчанию методом app.EnableBackKey(false))
- OnPause - приостановка работы приложения (в том числе, при переключении на домашний экран)
- OnResume - возобновление приостановленного приложения (в том числе, при переключении из домашнего экрана)
- OnConfig – изменение конфигурации (в том числе при повороте устройства пользователем)
- OnAlarm - сигнал будильника (если будильник был включен ранее методом app.SetAlarm())
- OnData – отправка данных сторонними приложениями
Для задания действия при возникновении этих событий используются одноимённые функции.
Базовый пример
Выполнить в DS
Пример обработки событий
Выполнить в DS
Методы:
- AddDrawer( {} layout, ('left','right') side, float width, float grabWidth) - добавляет слой выдвижного меню, с указанием места его появления, ширины и ширины области захвата
Выполнить в DS
app.AddDrawer( myLay, 'left', 0.75, 0.1);
- AddLayout( {} layout ) - добавляет компоновщик
Выполнить в DS
app.AddLayout( myLayout );
- Alert( str msg, str title, [(str)] options, int hue ) - вызывает диалог сообщения:
- msg - текст сообщения
- title - текст заголовка
- options - опции ('NoDim' - не затенять приложение)
- hue - цвет заголовка и линии
Выполнить в DS
app.Alert( 'Текст сообщения', 'Заголовок', 'NoDim', 0.75);
- Animate( callback, int fps ) - используется как альтернатива методу setInterval для получения более плавной анимации с заданной частотой кадров
- Broadcast( str type, str msg ) - не документировано
- BroadcastIntent( action,category,data,type,extras ) - не документировано
- Call( str number ) - осуществляет вызов телефонного номера
Выполнить в DS
app.Call();
- CheckLicense( key ) - осуществляет проверку лицензии Google Play при запуске платного приложения. Если приложение не имеет лицензии (кто-то достал копию apk и установил её), то появится диалог с просьбой купить его в GooglePlay, а затем приложение закроется
Выполнить в DS
app.CheckLicense();
- CheckPermission( str type ) - осуществляет проверку разрешений
Выполнить в DS
app.CheckPermission('extsdcard');
- ChooseAccount( callback ) - открывает диалог и в параметре item ФОВ показывает адрес электронной почты аккаунта
Выполнить в DS
app.ChooseAccount(function(item){app.Alert(item)});
- ChooseContact( ("phone") type, callback ) - открывает диалог для выбора контакта и возвращает его в функцию обратного вызова
Выполнить в DS
app.ChooseContact();
- ChooseFile( str msg, (str) type, callback, str fldr) - открывает диалог для выбора файлового менеджера, с помощью которого можно выбрать файлы заданного типа и получить их в функциии обратного вызова.
- msg - заголовок диалога
- type - типы файлов:
- "audio/*" - аудиофайлы
- "text/*" - текстовые файлы
- "image/*" - файлы изображений
- "*/*" - все файлы
- fldr - необязательный параметр для указания директории
Выполнить в DS
app.ChooseFile( 'Выбрать', 'image/*' , function( p_file ){ app.ShowPopup( p_file );} );
- ChooseImage( str option callback ) - открывает диалог выбора изображений из галереи. В качестве опции можно указать null, "internal" или "external"
Выполнить в DS
function OnStart()
{
lay = app.CreateLayout( 'linear', 'VCenter,FillXY' );
app.AddLayout( lay );
app.ChooseImage( null, gotit );
}
function gotit( fil )
{
img = app.CreateImage( fil, 0.5 );
lay.AddChild( img );
}
- ChooseWifi( str title1, str title2, callback, str options, str extra) - открывает диалог выбора беспроводной сети
Выполнить в DS
function OnStart()
{
lay = app.CreateLayout( 'linear', 'VCenter,FillXY' );
app.AddLayout( lay );
app.ChooseImage( null, gotit );
}
function gotit( fil )
{
img = app.CreateImage( fil, 0.5 );
lay.AddChild( img );
}
- ClearCookies( str session ) - очищает куки
Выполнить в DS
app.ClearCookies();
- ClearData( str file ) - очищает данные приватного файла ресурсов, записанные методами SaveNumber, SaveBool, SaveText
Выполнить в DS
app.ClearData();
- ClearValue( str name, str file ) - очищает значение в файле ресурса, записанное методами app.SaveNumber, app.SaveBool, app.SaveText
Выполнить в DS
app.ClearValue('test');
- CloseDrawer( ('left','right') side ) - закрывает выдвижное меню в заданную сторону
Выполнить в DS
app.CloseDrawer( 'left' );
- CopyFile( str src, str dest ) - копирует файл из папки источника в папку назначения
Выполнить в DS
app.CopyFile( '/sdcard/test.txt', '/sdcard/DroidScript/test.txt' );
- CopyFolder( str src, str dest, bool overwrite, str filter ) - копирует папку из папки источника в папку назначения без перезаписи или с перезаписью содержимого папки назначения
Выполнить в DS
app.CopyFolder( '/sdcard/myData', '/sdcard/DroidScript/myData', true );
- CreateAudioRecorder():{} - создаёт объект для записи звука
- CreateBluetoothList( str filter ):{} - создаёт диалог со списком доступных Bluetooth-устройств
- CreateBluetoothSerial( ('hex') mode ):{} - создаёт объект для работы с Bluetooth. Режим 'hex' используется для установки обмена байтами (в шестнадцатеричном или десятичном формате)
- CreateButton( str text, float width, float height, [(str)] options ):{} - создаёт кнопку
- CreateCameraView( float width, float height, [(str)] options ):{} - создаёт объект для работы с камерой
- CreateCheckBox( str text, float width, float height, [(str)] options ):{} - создаёт флажок
- CreateCodeEdit( str text, float width, float height, [(str)] options ):{} - создаёт редактор кода (доступно для премиум-пользователей)
- CreateCrypt( [(str)] options ):{} - создаёт криптограф
- CreateDebug():{} - создаёт отладчик
Выполнить в DS
app.CreateDebug();
- CreateDialog( str title, [(str)] options ):{} - создаёт пользовательский диалог
- CreateDownloader( [(str)] options ):{} - создаёт загрузчик
- CreateEmail( str account, str password ):{} - создаёт объект для работы с почтой
- CreateFile( str file, (str) mode ):{} - создаёт файл и возвращает объект для работы с ним на низком уровне
- CreateGLView( float width, float height, [(str)] options ):{} - создаёт холст для быстрой работы с двумерной графикой
- CreateGameView( float width, float height, [(str)] options ):{} - создаёт холст для игр
- CreateImage( str file, float width, float height, [(str)] options, float w, float h ):{} - создаёт холст для рисования и вывода графики
- CreateLayout( ('linear','absolute','frame') type, [(str)] options ):{} - создаёт компоновщик заданного типа
- CreateList( [str] list, float width, float height, [(str)] options ):{} - создаёт список
- CreateListDialog( str title, [str] list, [(str)] options ):{} - создаёт диалог выбора опции списка
- CreateListView( [str] list, str title, [(str)] options ):{} - создаёт полноэкранный список
- CreateLocator( str type, [(str)] options ):{} - создаёт локатор
- CreateMediaPlayer():{} - создаёт аудиопроигрыватель
- CreateMediaStore():{} - создаёт объект для работы с хранилищем медиарисурсов
- CreateNetClient( (str) type ):{} - создаёт сетевого клиента
- CreateNotification( [(str)] options ):{} - создаёт уведомление
- CreateNxt():{} - создаёт объект для работы с NXT-устройствами
- CreateNxtRemote():{} - создаёт объект управления NXT-устройствами
- CreateObject( str name ):{} - создаёт объект для загруженного в приложение плагина, имя которого задаётся в параметре
Выполнить в DS
app.CreateObject( 'MyPluginName' );
- CreateOverlay( str options ):{} - премиум-объект, позволяющий выводить изображения поверх экранов приложений
- CreatePhoneState( str types ):{} - создаёт объект для прослушивания состояния телефона
- CreatePlayStore():{} - создаёт объект для работы с магазином приложений Google
- CreateSMS():{} - создаёт объект для работы с SMS-сообщениями
- CreateScroller( float width, float height, [(str)] options ):{} - создаёт область прокрутки
- CreateSeekBar( float width, float height, [(str)] options ):{} - создаёт горизонтальный ползунок
- CreateSensor( (str) type, [(str)] options ):{} - создаёт объект для работы с заданным датчиком
- CreateService( str packageName, str className, callback, [(str)] options ):{} - создаёт сервисную службу
- CreateShortcut( str name, str iconFile, str file, [(str)] options ):{} - создаёт ярлык для приложения
- CreateSmartWatch( (str) type ):{} - создаёт объект для работы с умными часами Sony
- CreateSpeechRec( [(str)] options ):{} - создаёт объект для распознавания речи
- CreateSpinner( [str] list, float width, float height, [(str)] options ):{} - создаёт выпадающий список
- CreateSynth( (str) type ):{} - создаёт синтезатор звука
- CreateSysProc( str cmd, str env, str dir, str options ):{} - создаёт объект для выполнения системных команд
- CreateTabs( [] list, float width, float height, [(str)] options ):{} - создаёт объект для работы с вкладками
- CreateText( str text, float width, float height, [(str)] options ):{} - создаёт текстовую область
- CreateTextEdit( str text, float width, float height, [(str)] options ):{} - создаёт поле ввода
- CreateTheme( (str) baseTheme ):{} - создаёт объект для работы с тематическим оформлением приложения (доступно только для премиум-пользователей)
- CreateToggle( str text, float width, float height, [(str)] options ):{} - создаёт кнопку с фиксацией
- CreateUSBSerial():{} - создаёт объект для работы c USB
- CreateVideoView( float width, float height, [(str)] options ):{} - создаёт видеопроигрыватель
- CreateWallPaper( str options ):{} - создаёт объект для работы с живыми обоями (доступно только для премиум пользователей)
- CreateWebServer( int port, [(str)] options ):{} - создаёт web-сервер
- CreateWebSocket( str id, str ip, int port, [(str)] options ):{} - создаёт web-сокет
- CreateWebView( float width, float height, [(str)] options, int zoom ):{} - создаёт браузер
- CreateWizard( str title, float width, float height, callback ):{} - создаёт мастер создания объекта (доступно только для премиум пользователей)
- CreateYesNoDialog( str msg, [(str)] options ):{} - создаёт диалог подтверждения/отмены действия
- CreateZipUtil( mode ):{} - создаёт архиватор
- Debug( str msg ) - создаёт сообщение для отображения в окне отладчика
Выполнить в DS
app.Debug( 'Создали объект' );
- DeleteDatabase( str name ) - удаляет базу данных
Выполнить в DS
app.Deletebase( 'mybase' );
- DeleteFile( str file ) - удаляет файл
Выполнить в DS
app.DeleteFile( '/sdcard/myfile.txt' );
- DeleteFolder( str fldr ) - удаляет папку
Выполнить в DS
app.DeleteFile( '/sdcard/myfolder' );
- DestroyDrawer( {} layout ) - освобождает компоновщик выдвижного меню
Выполнить в DS
app.DestroyDrawer( menu );
- DestroyLayout( {} layout ) - освобождает компоновщик
Выполнить в DS
app.DestroyLayout( layMain );
- DisableKeys( ([str]) keyList ) - запрещает обычное действие (по умолчанию) для заданных клавиш
Выполнить в DS
app.DisableKeys( 'ENTER, TAB' );
- DiscoverBtDevices( str filter, onFound, onComplete ) - обнаруживает устройства Bluetooth
- DownloadFile( str src, str dest, str title, str desc, [(str)] options ) - загружает файл, используя встроенный в Android загрузчик
Выполнить в DS
app.DownloadFile( src, '/sdcard/speedtest.zip', 'Проверка скорости', '50 MB файл' );
- EnableBackKey( bool enable ) - управляет поведением системной клавиши Back. Если установлено false, то вместо стандартного поведения будет вызвана функция приложения onBack
Выполнить в DS
app.EnableBackKey( false );
- Execute( str js ) - выполняет строку как JavaScript-код
Выполнить в DS
app.Execute( 'alert( "Привет'" )' );
- Exit( kill ) - завершает выполнение программы
Выполнить в DS
app.Exit();
- ExtExec( str name,str file,str args,str options ) - выполняет команды в эмуляторе терминала Termux
Выполнить в DS
app.ExtExec( 'termux', 'hello.sh', 'Alex', 'hide' );
- ExtractAssets( str src, str dest, bool overwrite ) - копирует необходимые для работы приложения файлы из одной папки в другую с перезаписью при overwrite = true
Выполнить в DS
app.ExtractAssets( '/sdcard/srcfolder', '/sdcard/destfolder', false );
- ExtractPlugins() - не документировано
- FileExists( str file ):bool - проверяет существование заданного файла
Выполнить в DS
app.ShowPopup( app.FileExists( '/sdcard/myPicture.png' ));
- FolderExists( str fldr ):bool - проверяет существование заданной папки
Выполнить в DS
app.ShowPopup( app.FolderExists( '/sdcard/Download' ));
- GA( cmd ):[{}] - создаёт объект для работы с Google Analytics
- GetAccounts():[{}] - возвращает информацию об учётных записях
Выполнить в DS
app.ShowPopup( app.GetAccounts( ));
- GetActivities( options )[{str label, str packageName, str className}] - возвращает информацию об активностях
Выполнить в DS
alert( JSON.stringify(app.GetActivities(),null,1) );
- GetAppName():str - возвращает имя выполняющегося приложения
Выполнить в DS
app.ShowPopup( app.GetAppName() );
- GetAppPath():str - возвращает путь до выполняющегося приложения
Выполнить в DS
app.ShowPopup( app.GetAppPath() );
- GetBatteryLevel():float - возвращает уровень заряда батареи (0..1)
Выполнить в DS
app.ShowPopup( app.GetBatteryLevel() );
- GetBluetoothAddress:str- возвращает адрес Bluetooth
Выполнить в DS
app.ShowPopup( app.GetBluetoothAddress() );
- GetBluetoothName():str - возвращает имя Bluetooth-устройства
Выполнить в DS
app.ShowPopup( app.GetBluetoothName() );
- GetBtProfileState( (str) type):(str) - возвращает состояние соединения Bluetooth. type - 'a2dp','headset', 'gatt' или 'health'.
Выполнить в DS
app.ShowPopup( app.GetBtProfileState('health') );
- GetBuildNum():int - возвращает номер уровня API Android
Выполнить в DS
app.ShowPopup( app.GetBuildNum() );
- GetChargeType():str - возвращает тип заряжающего устройства или 'None' при его отсутствиии
Выполнить в DS
app.ShowPopup( app.GetChargeType() );
- GetClipboardText():str - возвращает текст из буффера обмена
Выполнить в DS
app.ShowPopup( app.GetClipboardText() );
- GetCountry():str - возвращает страну
Выполнить в DS
app.ShowPopup( app.GetCountry() );
- GetCountryCode() - возвращает код страны
Выполнить в DS
app.ShowPopup( app.GetCountryCode() );
- GetDSVersion():float - возвращает номер версии DroidScript
Выполнить в DS
app.ShowPopup( app.GetDSVersion() );
- GetData( str name ):[] - возвращает пользовательские данные
Выполнить в DS
app.ShowPopup( app.GetData( 'test' ));
- GetDatabaseFolder():str - возвращает папку базы данных
Выполнить в DS
app.ShowPopup( app.DatabaseFolder() );
- GetDefaultOrientation():(str) - возвращает ориентацию устройства, заданную по умолчанию - 'Portrait' или 'Landscape'
Выполнить в DS
app.ShowPopup( app.GetDefaultOrientation() );
- GetDeviceId():str - возвращает идентификатор устройства
Выполнить в DS
app.ShowPopup( app.GetDeviceId() );
- GetDisplayHeight():int - возвращает высоту экрана в px (исключается высота верхнего и нижнего информационного поля)
Выполнить в DS
app.ShowPopup( app.GetDisplayHeight() );
- GetDisplayWidth():int - возвращает ширину экрана в px
Выполнить в DS
app.ShowPopup( app.GetDisplayWidth() );
- GetEnv( str name ):[] - возвращает переменные окружения
Выполнить в DS
app.ShowPopup( app.GetEnv() );
- GetDrawerState( ('left','right') side ):str - возвращает состояние выдвижного меню:
- 'Open' - открыто
- 'Closed' - закрыто
- 'Sliding' - находится в скользящем состоянии
-
Выполнить в DS
app.GetDrawerState( 'right' );
- GetExternalFolder():str - возвращает путь до папки внешнего хранилища данных устройства
Выполнить в DS
app.ShowPopup( app.GetExternalFolder() );
- GetFileDate( str file ):[] - возвращает дату создания/изменения файла
Выполнить в DS
app.GetFileDate( '/sdcard/DroidScript/index.html' );
- GetFileSize( str file ):float - возвращает размер файла в байтах
Выполнить в DS
>app.GetFileSize( '/sdcard/DroidScript/index.html' );
- GetFreeSpace( ('internal','external') mode ):float - возвращает свободное пространиство внутреннего или внешнего хранилища устройства в Gb
Выполнить в DS
app.ShowPopup( app.GetFreeSpace() );
- GetIPAddress():str - возвращает IP-адресс устройства
Выполнить в DS
app.ShowPopup( app.GetIPAdress() );
- GetInstalledApps():[{}] - возвращает информацию об установленных приложениях в следующих полях:
- str packageName - имя пакета
- str className - имя класса
- uid - идентификатор
- int targetSDKVersion - целевая версия платформы Android
- str dataDir - папка данных
- str sourceDir - путь к apk-файлу
- str publicSourceDir - общедоступный путь к apk-файлу
- str nativeLabraryDir - путь к папке с библиотеками
Выполнить в DS
alert( JSON.stringify(app.GetInstalledApps(),null,1 ));
- GetIntent():{action, type, data, extras} - возвращает параметры намерения
Выполнить в DS
app.ShowPopup( app.GetIntent() );
- GetInternalFolder():str - возвращает путь до внутренного хранилища данных устройства
Выполнить в DS
app.ShowPopup( app.GetInternalFolder() );
- GetJoystickName( float id ):str - возвращает имя джойстика, подключённого к через OTG-кабель
Выполнить в DS
app.ShowPopup( app.GetJoystickName() );
- GetJoystickState( int id, (str) key ):float - возвращает состояние кнопки джойстика
:
- 0 - кнопка не нажата
- 1 - кнопка нажата
- -1.0 ... 1.0 - для устройств с действиями по осям (например,
-1.0 для оси X - влево, 1.0 - для оси X - вправо)
- key - кнопка ( могут быть от 'axis-0' до 'axis-9', от 'btn-1' до 'btn-12'):
- 'Up' - верхняя
- 'Down' - нижняя
- 'Left' - левая
- 'Right' - правая
- 'Center' - центральная
- 'X','Y','Z' - осевые
- 'A','B','C' - функциональные
- 'Start' - старта
- 'ThumbLeft' - большая левая
- 'ThumbRight' - большая правая
- 'l1','r1','l2','r2'
Выполнить в DS
app.ShowPopup( app.GetJoystickState( 0, 'A' ));
- GetKeyboardHeight():float - возвращает высоту области виртуальной клавиатуры
Выполнить в DS
app.ShowPopup( app.GetKeyboardHeight() );
- GetLanguage():str - возвращает название языка локализации
Выполнить в DS
app.ShowPopup( app.GetLanguage() );
- GetLanguageCode():str -возвращает код локализации
Выполнить в DS
app.ShowPopup( app.GetLanguageCode() );
- GetLastButton():{} - возвращает нажатую последней кнопку
Выполнить в DS
app.ShowPopup( app.GetLastButton() );
- GetLastCheckBox():{} - возвращает нажатый последним флажок
Выполнить в DS
app.ShowPopup( app.GetLastCheckBox() );
- GetLastImage():{} - возвращает нажатый последним холст (картинку)
Выполнить в DS
app.ShowPopup( app.GetLastImage() );
- GetLastToggle():{} - возвращает нажатую последней кнопку с фиксацией
Выполнить в DS
app.ShowPopup( app.GetLastToggle() );
- GetMacAddress():str - возвращает MAC-адрес устройства
Выполнить в DS
app.ShowPopup( app.GetMacAddress() );
- GetMediaFile( str appName, str ext ) - не документировано. Создаёт в папке sdcard0/Pictures папку с заданным в appName именем и расширением, заданным в ext
- GetMemoryInfo():{int avail, bool low, int threshold, int total} - возвращает информацию об использовании памяти в байтах
Выполнить в DS
app.ShowPopup( JSON.stringify( app.GetMemoryInfo()) );
- GetMetadata( str file, keys ) - не документировано
- GetModel():str - возвращает модель устройства
Выполнить в DS
app.ShowPopup( app.GetModel() );
- GetName():str - возвращает имя приложения
Выполнить в DS
app.ShowPopup( app.GetName() );
- GetNotifyId():str - возвращает идентификатор уведомления
Выполнить в DS
app.ShowPopup( app.NotifyId() );
- GetOSVersion():int - возвращает номер операционной системы Android
Выполнить в DS
app.ShowPopup( app.GetOSVersion() );
- GetObjects():[{}] - возвращает массив идентификаторов объектов приложения
Выполнить в DS
app.ShowPopup( app.GetObjects() );
- GetOptions() - возвращает опции приложения ('remote')
Выполнить в DS
app.ShowPopup( app.GetOptions() );
- GetOrientation():(str) - возвращает текущую ориентацию экрана устройства
Выполнить в DS
app.ShowPopup( app.GetOrientation() );
- GetPackageName():str - возвращает имя установочного пакета приложения
Выполнить в DS
app.ShowPopup( app.GetPackageName() );
- GetPairedBTDevices():[] - возвращает массив индексов спаренных устройств