Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 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);
     }
 }