指南
同意管理
了解如何在加载脚本之前获取用户同意。
背景
许多第三方脚本包含跟踪 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))
})
})