/** * Check browser is suit with origin */ private function checkBrowserIsRight($origin) { switch ($origin) { case Channel::WECHAT: $isBrowerRight = BrowserUtil::isWeixinBrowser() ? true : false; break; case Channel::WEIBO: $isBrowerRight = BrowserUtil::isWeiboBrower() ? true : false; break; case Channel::ALIPAY: $isBrowerRight = BrowserUtil::isAliBrower() ? true : false; break; default: $isBrowerRight = false; break; } return $isBrowerRight; }
private function renderPage($page, $useRiot = false, $injectWechatJS = true, $socialWebviewOnly = true) { $actionName = $this->action->id; $params = Yii::$app->request->get(); $this->registerCommonResource($page, $useRiot); if ($injectWechatJS) { $sdk = Yii::$app->wechatSdk; $sdk->refererUrl = $sdk->refererDomain . substr(Yii::$app->request->getUrl(), 1); $signPackage = json_encode($sdk->getSignPackage()); $logObj = json_encode(['url' => Yii::$app->params['frontendTrackUrl'], 'env' => Yii::$app->params['currentEnv']]); $js = "var options={$signPackage}, page='{$page}';window.trackerLog={$logObj};"; $this->view->registerJs($js, View::POS_HEAD); if (empty($params['debug'])) { $this->registerBodyJsFile(self::BUILD_PATH . 'handlewechat.js?v=' . Yii::$app->params['buildVersion']); } } $socialWebviewOnly = $socialWebviewOnly && empty($params['debug']); if ($socialWebviewOnly && !BrowserUtil::isWeixinBrowser() && !BrowserUtil::isWeiboBrower() && !BrowserUtil::isAliBrower()) { $this->view->js = null; $this->view->jsFiles = null; $this->view->cssFiles = null; $this->view->registerCssFile(self::BUILD_PATH . 'common/app.css'); return $this->render('common/error'); } else { //Member active record $accessToken = $this->getAccessToken(); if (!empty($params['memberId']) && !empty($accessToken)) { $memberId = new \MongoId($params['memberId']); $accountId = Token::getAccountId($accessToken); MemberLogs::record($memberId, $accountId, MemberLogs::OPERATION_VIEWED); } return $this->render($actionName . '/' . $page); } }