%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/web/pwa/widgets/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/web/pwa/widgets/LayoutHeader.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2019 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\modules\web\pwa\widgets; use Yii; use yii\base\WidgetEvent; use yii\helpers\Url; use humhub\components\Widget; use humhub\modules\web\Module; use humhub\modules\ui\view\components\View; /** * Class LayoutHeader * * @package humhub\modules\ui\widgets */ class LayoutHeader extends Widget { /** * Registers mobile app related Head Tags * * @param View $view */ public static function registerHeadTags(View $view) { $view->registerMetaTag(['name' => 'theme-color', 'content' => Yii::$app->view->theme->variable('primary')]); $view->registerMetaTag(['name' => 'application-name', 'content' => Yii::$app->name]); // Apple/IOS headers // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html $view->registerMetaTag(['name' => 'apple-mobile-web-app-title', 'content' => Yii::$app->name]); $view->registerMetaTag(['name' => 'apple-mobile-web-app-capable', 'content' => 'yes']); $view->registerMetaTag(['name' => 'apple-mobile-web-app-status-bar-style', 'content' => Yii::$app->view->theme->variable('primary')]); $view->registerLinkTag(['rel' => 'manifest', 'href' => Url::to(['/web/pwa-manifest/index'])]); /** @var Module $module */ $module = Yii::$app->getModule('web'); if ($module->enableServiceWorker !== false) { static::registerServiceWorker($view); } } private static function registerServiceWorker(View $view) { $cacheId = Yii::$app->cache->getOrSet('service-worker-cache-id', function () { return time(); }); $serviceWorkUrl = Url::to(['/web/pwa-service-worker/index', 'v' => $cacheId]); $rootPath = Yii::getAlias('@web') . '/'; $view->registerJs(<<<JS if ('serviceWorker' in navigator) { navigator.serviceWorker.register('$serviceWorkUrl', { scope: '$rootPath' }) .then(function (registration) { if (typeof afterServiceWorkerRegistration === "function") { afterServiceWorkerRegistration(registration); } }) } JS , View::POS_READY, 'serviceWorkerInit'); } }