2

我试图Google One Tap SignIn在我的项目中实施。在构建项目后的第一次谷歌点击提示将显示。但是下次如果我们刷新页面,提示也不会显示。

这是我的代码片段。

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();

4

1 回答 1

1

为避免 One Tap UI 过于频繁地提示最终用户,如果用户通过“X”按钮关闭 UI,One Tap 将被禁用一段时间。这就是所谓的“指数冷却”功能。更多详情请访问:https ://developers.google.com/identity/one-tap/web/guides/features#exponential_cool_down

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

于 2020-09-27T00:20:31.297 回答