- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/controller/barcodescanner.php
- Класс: BitrixCatalogControllerBarcodeScanner
- Вызов: BarcodeScanner::sendMobilePushAction
public function sendMobilePushAction(string $id): ?array
{
if (!Loader::includeModule('catalog') || !AccessController::getCurrent()->check(ActionDictionary::ACTION_CATALOG_READ))
{
$this->addError(new Error(Loc::getMessage('BARCODE_SCANNER_ACCESS_DENIED')));
return null;
}
if (!Loader::includeModule('pull'))
{
$this->addError(new Error(Loc::getMessage('BARCODE_SCANNER_PULL_MODULE_REQUIRED')));
return null;
}
/**
* System push waking app when it is not in active state
*/
(new CPushManager())->sendMessage([
[
'USER_ID' => $this->getCurrentUser()->getId(),
'APP_ID' => 'Bitrix24',
'EXPIRY' => 0,
'PARAMS'=> [
'TYPE' => 'CATALOG_BARCODE_SCANNER',
'ID'=> $id,
],
'ADVANCED_PARAMS' => [
'senderName' => Loc::getMessage('BARCODE_SCANNER_PUSH_TITLE'),
'senderMessage' => Loc::getMessage('BARCODE_SCANNER_PUSH_TEXT')
]
]
]);
/**
* Local push for app in active state
*/
Event::add(
$this->getCurrentUser()->getId(),
[
'module_id' => 'catalog',
'command' => 'OpenBarcodeScanner',
'params' => [
'id' => $id,
]
]
);
return [];
}