2015-07-20 68 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