Google一键登录弹出窗口未显示

问题描述

我正在尝试在项目中实现Google One Tap SignIn。建立项目后的第一时间,将显示Google一键提示。但是,下次再刷新页面时,也不会显示提示

这是我的代码段。

import { addScript } from 'Util/DOM';

/**
 * Loads One Tap Client Library
 */
const loadOneTapClientLibrary = async() => {
    await addScript('https://accounts.google.com/gsi/client');
}

/**
 * Loads One Tap Javascript API
 * @param {*} resolve 
 */
const loadOneTapJsAPI = (resolve) => {
    window.onload = () => {
        google.accounts.id.initialize({
          client_id: "My client Id",callback: data => resolve(data)
        });
        google.accounts.id.prompt();
    }
}

export const loadOneTap = async() => {
    return new Promise( (resolve,reject) => {
        loadOneTapClientLibrary();
        loadOneTapJsAPI(resolve);
    })
}

页面加载后,我致电loadOneTap();

解决方法

为避免“一键式” UI提示用户的频率过高,如果用户通过“ X”按钮关闭UI,则“一键式”将被禁用一段时间。这就是所谓的“指数冷却”功能。有关更多详细信息,请访问:https://developers.google.com/identity/one-tap/web/guides/features#exponential_cool_down

我相信您在开发过程中触发了此功能。为避免这种情况,请使用Chrome隐身模式(并在必要时重新启动浏览器)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...