2011-11-11 12 views

उत्तर

31

सबसे पहले और सबसे महत्वपूर्ण मुझे लोगों को बहुत श्रेय देना है here. उनका ब्लॉग जबरदस्त मदद का था, लेकिन मुझे अभी भी इसे काम करने के लिए कुछ और चीजें करना पड़ा।

मैं इसे चरण-दर-चरण में जाने जा रहा हूं ताकि आप इसे एक बहुत ही बुनियादी स्तर पर काम कर सकें और फिर आप इसे वहां से ले जा सकें। मैंने पाया कि मामूली गलती गड़बड़ कर सकती है।

मैं तुम्हें PhoneGap 1.2.0 स्थापित किया है यह सोचते हैं रहा हूँ और Xcode 4.2

उपयोग कर रहे हैं

भाग एक

एक बुनियादी PhoneGap ऐप्लिकेशन काम प्राप्त करें। PhoneGap guide का पालन करें और वह काम करें।


भाग बी

डाउनलोड PhoneGap गूगल एनालिटिक्स प्लगइन। मुझे सबसे आसान काम मिल रहा है बस here. से ज़िप फ़ाइल डाउनलोड करें, आपको उन चीज़ों का ढेर मिलता है जिनकी आपको आवश्यकता नहीं है लेकिन इससे कोई फर्क नहीं पड़ता।

अपनी डाउनलोड निर्देशिका में फ़ाइल का विस्तार करें। विस्तारित निर्देशिका में जाएं .. आईफोन फ़ोल्डर में और आपको GoogleAnalytics फ़ोल्डर देखना चाहिए।

एक्सकोड में, प्रोजेक्ट (शीर्ष पर नीली ब्लॉक चीज़) पर राइट क्लिक करें और 'फ़ाइलें जोड़ें' चुनें। विस्तारित फ़ोल्डर पर नेविगेट करें। 'GoogleAnalytics' फ़ोल्डर पर क्लिक करें। सुनिश्चित करें कि 'गंतव्य समूह के फ़ोल्डर में फ़ाइल कॉपी करें (यदि आवश्यक हो)' चुना गया है और यह लक्ष्य में जोड़ा गया है। 'जोड़ें' पर क्लिक करें। प्लगइन फ़ोल्डर में एक्सकोड में फ़ोल्डर में फ़ाइलों को खींचें।

खोजक पर वापस जाएं और परियोजना निर्देशिका खोलें। GoogleAnalytics फ़ोल्डर से 'www' फ़ोल्डर में GoogleAnalyticsPlugin.js कॉपी करें। एक्सकोड फाइल को फिर से सहेजने के बारे में चेतावनी देगा .. बस बंद करें पर क्लिक करें।

index.html फ़ाइल पर जाएं। function onDeviceReady() में फ़ंक्शन की शुरुआत में निम्न पंक्ति जोड़ें।

window.plugins.googleAnalyticsPlugin.startTrackerWithAccountID("YOUR UA CODE");

अगला निम्नलिखित समारोह onDeviceReady समारोह के तहत (एक ही स्क्रिप्ट ब्लॉक के अंदर) जोड़ने

function trackpage(id) 
{ 
    console.log("start trackpage: " + id); 
    window.plugins.googleAnalyticsPlugin.trackPageview(id); 
    console.log("end trackpage: " + id); 
} 

अब, अभी भी index.html फ़ाइल में, लाइन को खोजने

<li>Check your console log for any white-list rejection errors.</li> 

(याद रखें यह फोनगैप 1.2.0 है)

इसके बाद निम्न पंक्ति जोड़ें।

<li class="arrow"><a href="javascript:trackpage('/TEST');">test analytics</a></li> 

यह एक लिंक देता है जिसे आप परीक्षण ऐप में क्लिक कर सकते हैं।

एनबी। आप आवश्यक आपके द्वारा ट्रैक किए जा रहे पृष्ठ में एक आगे स्लैश (/) है। तो javascript:trackpage('/TEST') काम करेगा जबकि javascript:trackpage('TEST') नहीं होगा।

अंत में, अभी भी index.html में निम्न पंक्ति

<script type="text/javascript" charset="utf-8" src="GoogleAnalyticsPlugin.js"></script> 

नीचे

<script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.js"></script> 

अभी तक इसे चलाने के लिए कोशिश कर रहा है परेशान न हों जोड़ें। यह काम नहीं करेगा।


भाग सी

अगला गोटो GoogleAnalytics.h फ़ाइल। बस इसे मिटा दें .. यहां समस्याओं का ढेर है। जेएसओएन अब जेएसओएनकिट और फोनगैप कमांड है अब पीजीपीलॉगिन है .. बस इसे पेस्ट करें। फोनगैप दस्तावेज पूरी जगह पर दिखता है।

#import <Foundation/Foundation.h> 

#ifdef PHONEGAP_FRAMEWORK 
#import <PhoneGap/PGPlugin.h> 
#import <PhoneGap/NSData+Base64.h> 
#import <PhoneGap/JSONKit.h> 
#else 
#import "PGPlugin.h" 
#import "NSData+Base64.h" 
#import "JSONKit.h" 
#endif 

#import "GANTracker.h" 

@interface GoogleAnalyticsPlugin : PGPlugin<GANTrackerDelegate> { 

} 

- (void) startTrackerWithAccountID:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 
- (void) trackEvent:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 
- (void) trackPageview:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; 

@end 

भाग डी

अगला परियोजना के लिए Google विश्लेषण भाग जोड़ें। यह वह हिस्सा है जो Google प्रदान करता है लेकिन यह आसानी से फोनगैप आईओएस GoogleAnalytics/GoogSDK प्लगइन फ़ोल्डर में शामिल है।

एक्सकोड में, GoogleAnalytics/GoogSDK फ़ोल्डर पर जाएं और GANTracker.h और libGoogleAnalytics.a फ़ाइलों को प्लगइन्स निर्देशिका में खींचें।

असल में आपको उन्हें 'नीले' GoogleAnalytics/GoogSDK फ़ोल्डर से 'पीले' फ़ोल्डर में कॉपी करने की आवश्यकता है ताकि वे हेडर फ़ाइलों द्वारा पाई जा सकें।


भाग ई

अगला हम SQLite जोड़ने की जरूरत है (जहां जब नहीं ऑनलाइन गूगल एनालिटिक्स भंडार डेटा) और CFNetwork परियोजना के लिए (गूगल एनालिटिक्स तो डेटा अपलोड कर सकते हैं)।

एक्सकोड में प्रोजेक्ट पर क्लिक करें (फ़ाइल के शीर्ष पर नीली चीज़)। मुख्य लक्ष्य पर क्लिक करें। फिर बिल्ड चरणों पर क्लिक करें। सूची में तीसरा आइटम "पुस्तकालयों के साथ लिंक बाइनरी" है। ध्यान दें कि इनमें से दो हैं .. शीर्ष पर चुनें। इसे खोलें और + चिह्न पर क्लिक करें। libsqlite3.0.dylib जोड़ें तो CFNetwork.framework जोड़ें।


भाग एफ

अंत में (लगभग वहाँ) हम प्लगइन सेटअप की जरूरत है। PhoneGap.plist फ़ाइल पर जाएं। प्लगइन्स के तहत googleAnalyticsPlugin (जावास्क्रिप्ट नाम) के रूप में कुंजी के साथ एक और प्रविष्टि जोड़ें और GoogleAnalyticsPlugin (Obj-C भाग) के रूप में मान जोड़ें।

ExternalHosts के तहत एक * प्रविष्टि

अब कोशिश करते हैं और चलाने जोड़ें। फिंगर्स पार हो गया यह काम करेगा।

प्रोग्राम चलाने के लिए इसका परीक्षण करने का सबसे अच्छा तरीका और फिर नए Google Analytics रीयल टाइम (बीटा) मोड का उपयोग करें क्योंकि आप पृष्ठों को लाइव ट्रैक कर सकते हैं।

आपको Google Analytics के नए संस्करण में बदलना होगा (यह नए संस्करण में जाने के लिए शीर्ष पर एक स्पष्ट लिंक होना चाहिए)। जीए खाता खोलें, घर पर जाएं ..REAL_TIME ... अवलोकन। आपको कुछ सेकंड के भीतर आने वाले टेस्ट पेज ट्रैक को देखना चाहिए।

नोट: आप रीयलटाइम में ईवेंट ट्रैक नहीं कर सकते हैं। आपको उनके लिए संसाधित होने की प्रतीक्षा करनी होगी।

मुद्दों

मैं कुछ समस्या थी जब संकलित सूत्रों का कहना है और लिंक बाइनरी के साथ पुस्तकालय को देखकर। GoogleAnalytics भागों लाल रंग में दिखाई देगा। यदि वे लाल रंग में हैं तो इसका मतलब है कि आपकी परियोजना उन्हें नहीं ढूंढ सकती है और मुझे लगता है कि आप इसे कैसे हल करते हैं, यह आपके एक्सकोड के संस्करण पर निर्भर करता है ताकि आपको इसे हल करने के लिए थोड़ा सा Google की आवश्यकता हो। मैंने GoogleAnalytics को हटाने के लिए किया था (साइन - दबाएं) फिर फ़ाइल को खींचें। यदि यह "उचित आइकन" के रूप में दिखाई देता है (लाल बॉक्स के विपरीत) तो यह काम करना चाहिए था।

एंड्रॉइड पर भी ऐसा करना?

मुझे लगता है कि आप फोनगैप का उपयोग कर रहे हैं तो आप शायद एंड्रॉइड संस्करण भी कर रहे हैं। यदि ऐसा है तो आप मतभेदों के लिए this comparison क्यू + ए देखना चाहेंगे।

+0

वाह, एक किताब की तरह है। अच्छा काम :) –

+1

धन्यवाद। निराशाजनक हैकिंग के लगभग एक हफ्ते का नतीजा। उम्मीद है कि इससे दूसरों को बहुत समय बर्बाद करने में मदद मिलेगी। – Tim

+1

@Tim आपको बहुत बहुत धन्यवाद, यह भी ढूंढ रहा था। मेजबानों के लिए बीटीडब्ल्यू, बाहरी होस्ट्स की आवश्यकता नहीं है *। आप google-analytics.com सेट अप कर सकते हैं वह डोमेन है जहां अनुरोध भेजे जाते हैं। – RaphaelDDL

1

धन्यवाद अपने महान काम के लिए बहुत बहुत, मेरी केवल भ्रम की स्थिति इस ब्लॉक के साथ किया गया था:

function trackpage(id) 
{ 
    console.log("start trackpage: " + id); 
    window.plugins.googleAnalyticsPlugin.trackPageview(id); 
    console.log("end trackpage: " + id); 
} 

onready समारोह के बाहर यह डाल करने के लिए यह मेरे एप्लिकेशन में काम करने के लिए था।

संबंधित मुद्दे