Angular中的Authguard弹出窗口被浏览器阻止
创始人
2024-10-31 02:30:20
0

在调用弹出窗口的地方添加用户事件(比如监听点击事件),然后在回调函数中打开弹出窗口。这样浏览器就不会将其视为无效弹出窗口。

示例代码:

import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class AuthGuard implements CanActivate {
  constructor(private router: Router) {}
  
  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {
  
    return this.checkLogin().then((isLoggedIn) => {
      if (isLoggedIn) {
        return true;
      } else {
        // 添加用户事件
        document.addEventListener('click', () => {
          // 在回调函数中打开弹出窗口
          window.open('https://example.com/login');
        });
  
        return false;
      }
    });
  }

  checkLogin(): Promise {
    // 实现登录判断逻辑
  }
}

注意:这种解法并不是在所有浏览器中都适用,因为一些浏览器可能对用户事件也进行拦截。对于这种情况,最好的解决方案是不要使用弹出窗口,而是使用模态框或其他交互组件。

相关内容

热门资讯

微扑克wpk透视辅助!wpk有... 微扑克wpk透视辅助!wpk有修改器吗,微扑克系统机制,第三方教程(有挂详情),您好,微扑克wpk透...
德州ai人工智能!wepoke... 德州ai人工智能!wepoke ai代打辅助,线上德州ai机器人,AI教程(有挂教学)是一款可以让一...
aapoker透明挂!线上德州... aapoker透明挂!线上德州辅助工具有哪些,德扑ai智能机器人平台安装,细节方法(有挂规律);人气...
wepoke确实有挂!德州ai... wepoke确实有挂!德州ai在哪里找,wepoke软件机器人,专业教程(有挂辅助挂)您好,wepo...
德州之星有外挂!微扑克ai人工... 德州之星有外挂!微扑克ai人工智能,wpk透视辅助封号,科技教程(有挂详情)是一款可以让一直输的玩家...
wepoke有挂!德扑ai智能... wepoke有挂!德扑ai智能系统,德州ai辅助神器,德州教程(有挂了解);小薇(透视辅助)致您一封...
德州微扑克辅助!aapoker... 德州微扑克辅助!aapoker软件app,wepoke软件收费,安装教程(有挂技巧)德州微扑克辅助辅...
WePoKe外挂!cloud辅... WePoKe外挂!cloud辅助,wepoke是机器发牌,分享教程(有挂教学)1、WePoKe外挂a...
we辅助poker德之星!wp... we辅助poker德之星!wpk有长期盈利玩家吗,德扑ai智能机器人代理,2025新版(有挂规律)1...
aapoker辅助工具存在!德... aapoker辅助工具存在!德扑之星怎么带出记分牌,wepoke开发者,2025版教程(有挂教学)a...