Как вызвать функцию внутри оконного объекта в nuxt js?

Я интегрировал tawk в свое веб-приложение, создав плагин.

plugins: [
    { src: '~/plugins/tawk',ssr: false },
],

Я использую tawk api onPrechatSubmit и onOfflineSubmit для получения данных чата и сохранения в базе данных.

export default {
    mounted() {
        if (process.client) {
            window.Tawk_API.onOfflineSubmit = function(data){
                data.type = "onOfflineSubmit";
                this.generateTawkData(data)
                
            };
        }

        if (process.client) {
            window.Tawk_API.onPrechatSubmit  = function(data){
                data.type = "onPrechatSubmit";
                this.generateTawkData(data)
            };
        }
    },
    methods:{
        generateTawkData(data) {
            console.log(data)
        }
    }
}

Когда я вызываю вызов из mount () с помощью this.generateTawkData(data), он не вызывает функцию. Подскажите, пожалуйста, как вызвать вызов метода.

1 ответ

Нет никаких process.clientв навесные крючки. Вместо этого вы можете попробовать заменить наprocess.browser чтобы убедиться, что браузер / клиент готов.

export default {
    mounted() {
        // replace with process.browser
        if (process.browser) {
            window.Tawk_API.onOfflineSubmit = function(data){
                data.type = "onOfflineSubmit";
                this.generateTawkData(data)
                
            };
        }

        // replace with process.browser
        if (process.browser) {
            window.Tawk_API.onPrechatSubmit  = function(data){
                data.type = "onPrechatSubmit";
                this.generateTawkData(data)
            };
        }
    },
    methods:{
        generateTawkData(data) {
            console.log(data)
        }
    }
}
Другие вопросы по тегам