如果用户允许位置共享,则我需要在GTM容器中添加一个自定义javascript变量以返回true

时间:2019-04-12 06:51:18

标签: javascript google-tag-manager

用户与浏览器共享位置后,我需要触发代码。我在GTM容器中尝试将以下代码作为自定义javascript变量,但无法正常工作。

navigator.permissions && navigator.permissions.query({name:'geolocation'}).then(function(PermissionStatus) {
    if(PermissionStatus.state == 'granted'){
         return true;
    }else{
         return false;
    }
})

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案是将您拥有的代码实现为自定义HTML标签,并将promise的结果作为事件推送到dataLayer-然后您可以在此新事件上触发标签。例如:

<script>
    navigator.permissions && navigator.permissions.query({name:'geolocation'}).then(function(PermissionStatus) {
        if(PermissionStatus.state == 'granted'){
             dataLayer.push({event: 'permissionGranted'})
        }else{
             dataLayer.push({event: 'permissionDenied'})
        }
    })
<script>

然后,您需要在此自定义事件“ permissionGranted”上触发代码。

有关自定义事件here的更多信息。