2015-07-20 43 views
0

我有以下結構:deviceready在multipages和谷歌分析插件在我的PhoneGap應用

-index.html

-page1.html

-page2.html ...

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

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

我爲了使用谷歌分析插件(https://github.com/danwilson/google-analytics-plugin/)將其添加到index.html的

這在其他頁面(在這個例子中page1.html):

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

在GA我只看到了「家」屏幕並沒有看到其他屏幕。

難道我錯過了什麼或做這個插件不具有多個頁面架構工作?

感謝

回答

1

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只會在第一次加載 應用程序時觸發一次,這是真的嗎?

是的,這是真的。但應正確地讀取,「只觸發一次頁面加載」

所以,如果是的,它可能是很難建立的其他/ if語句來檢測 頁面嗎?

您可以在每個頁面中構建SPA(單頁應用程序)或加載cordova.js。關於後者,我已經這樣做了。有用。

需要明確的是,每次載入網頁時,你需要重新加載的所有庫。瀏覽器不會將這些庫保存在內存中。這似乎是你做出的錯誤假設。

+0

嗨,理解,謝謝,但如果我把它添加到我的後續頁面:' '該設備已經不開火... –

+0

我應該。如果不看你的代碼,我無法告訴你更多。你可以發佈到github或類似的,我會看看它。否則,我已經完成了超過500頁的這個(不是這個插件,但音頻),目錄3深。只要我加載* cordova.js *,一切都很好。 – JesseMonroy650