0

в моем PhoneGap приложение, которое я имею следующую архитектуру:deviceready в multipages и Google Analytics плагин

-index.html

-page1.html

-page2.html ...

добавить это к index.html для того, чтобы использовать Google Analytics плагин (https://github.com/danwilson/google-analytics-plugin/):

<script>  
document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    window.analytics.startTrackerWithId('UA-1233455-1'); 
    window.analytics.trackView('Home'); 
} 
</script> 

И это к другим страницам (page1.html в данном примере):

<script>  
    window.analytics.trackView('page1'); 
</script> 

В ГА я видел только на экране «Главная страница» и не видят других экранов.

Я пропустил что-то или этот плагин не работает с архитектурой нескольких страниц?

Благодаря

ответ

1

Per the documentation, тем window.analytics.trackView('page1'); вызов должен быть в deviceReady разделе приложения. Поскольку ваши trackView звонки на отдельные страницы там не включены, они не будут вызываться.

В вашем deviceReady вы должны иметь возможность вызвать оператор if/else, который будет срабатывать на каждой странице.

+0

Но я понимаю, что deviceReady срабатывает только один раз при первой загрузке приложения, правда? Так что, если да, может быть сложно построить инструкцию else/if для обнаружения правильной страницы? –

+0

Да, если вы загружаете cordova.js на несколько страниц, вы должны быть в состоянии настроить его таким образом. –

+0

Итак, если я понимаю, я должен добавить cordova.js на каждую страницу и добавить 'document.addEventListener (« deviceready », onDeviceReady, false);' и мою функцию onDeviceReady на каждой странице тоже, так? –

0

Но я понимаю, что deviceReady срабатывает только один раз при первом загрузке приложения , это правда?

Да, это правда. Но он должен правильно читать, «это только пожары, как только страница загружена»

Так что, если да, это может быть трудно построить еще/если заявление для обнаружения правой страницы?

Вы можете создать SPA (одностраничное приложение) или загрузить cordova.js на каждой странице. На этом последнем я сделал это. Оно работает.

Чтобы быть ясным, каждый раз, когда вы загружаете веб-страницу, вам необходимо перезагрузить ВСЕ библиотеки. Браузер НЕ хранит библиотеки в памяти. Это, по-видимому, ложное предположение.

+0

Привет, спасибо, но если я добавлю это на свою вторую страницу: ' 'deviceready не срабатывает ... –

+0

Я должен. Я не могу сказать вам больше, не глядя на ваш код. Вы можете отправить сообщение в github или подобное, и я буду смотреть на него. В противном случае я сделал это (не с этим плагином, но с аудио) на более чем 500 страницах, с глубинами каталогов 3. Пока я загружаю * cordova.js *, все в порядке. – JesseMonroy650

Смежные вопросы