指南

同意管理

了解如何在加载脚本之前获取用户同意。

背景

许多第三方脚本包含跟踪 Cookie,根据隐私法,这些 Cookie 需要用户同意。Nuxt 脚本使用 useScriptTriggerConsent 组合式函数简化了此过程,允许仅在收到用户同意后加载脚本。

用法

useScriptTriggerConsent 组合式函数提供灵活的交互选项,适合各种场景。

有关可用选项的完整详细信息,请参阅 API 文档。

作为函数接受

使用 useScriptTriggerConsent 的最简单方法是在授予用户同意时调用 accept 方法。

有关如何布局代码以处理此问题的示例,请参见以下内容

export const agreedToCookiesScriptConsent = useScriptTriggerConsent()

作为可解析布尔值接受

或者,您可以将对同意状态的响应式引用传递给 useScriptTriggerConsent 组合式函数。这将在同意状态为 true 时自动加载脚本。

const agreedToCookies = ref(false)
useScript('https://www.google-analytics.com/analytics.js', {
  trigger: useScriptTriggerConsent({
    consent: agreedToCookies
  })
})

在某些情况下,您可能希望在特定事件后触发脚本加载,前提是用户已同意。

为此,您可以使用 postConsentTrigger,它与 useScript 组合式函数中的 trigger 共享相同的 API。

const agreedToCookies = ref(false)
useScript('https://www.google-analytics.com/analytics.js', {
  trigger: useScriptTriggerConsent({
    consent: agreedToCookies,
    // load 3 seconds after consent is granted
    postConsentTrigger: new Promise<void>(resolve => setTimeout(resolve, 3000))
  })
})