Шаг за шагом, чтобы Google Analytics работал в PhoneGap 1.2.0 на iOS (phonegapalytics) - PullRequest
6 голосов
/ 11 ноября 2011

Как мне установить Google Analytics в PhoneGap 1.2.0 в iOS?

Ответы [ 2 ]

31 голосов
/ 11 ноября 2011

Прежде всего, я должен отдать должное парням здесь. Их блог оказал огромную помощь, но мне все же пришлось сделать еще несколько вещей, чтобы наконец заставить его работать.

Я собираюсь пройти через это шаг за шагом, чтобы вы могли заставить его работать на самом базовом уровне, а затем вы можете взять его оттуда. Я обнаружил, что даже малейшая ошибка может все испортить.

Я предполагаю, что вы установили PhoneGap 1.2.0 и используете Xcode 4.2


ЧАСТЬ A

Получите базовое приложение PhoneGap. Следуйте инструкциям PhoneGap и приведите это в действие.


ЧАСТЬ B

Загрузите плагин Google Analytics для PhoneGap. Я считаю, что самое простое, что можно сделать, это просто загрузить zip-файл с здесь. Вы получаете кучу вещей, которые вам не нужны, но это не имеет значения.

Разверните файл в вашем каталоге загрузки. Перейдите в расширенный каталог .. в папку iPhone , и вы увидите папку GoogleAnalytics .

В XCode щелкните правой кнопкой мыши на проекте (синий блок вверху) и выберите «Добавить файлы». Перейдите в расширенную папку. Нажмите на папку «GoogleAnalytics». Убедитесь, что выбрано «Копировать файлы в папку целевой группы (если необходимо)» и что оно добавлено в целевую папку. Нажмите «Добавить». Перетащите файлы в папке в Xcode в папку плагинов.

Вернитесь в Finder и откройте каталог проекта. Скопируйте GoogleAnalyticsPlugin.js из папки GoogleAnalytics в папку «www». Xcode выдаст предупреждение о повторном сохранении файла. Просто нажмите Закрыть.

Перейдите в файл 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>

Это дает ссылку, по которой вы можете щелкнуть в тестовом приложении.

NB. У вас ДОЛЖЕН косая черта (/) на отслеживаемой странице. Так что 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>

Пока не пытайтесь запустить его. Это не сработает.


ЧАСТЬ C

Далее перейдите к файлу GoogleAnalytics.h. Просто протрите .. Здесь куча проблем. Кажется, JSON теперь JSONKit, а PhoneGapCommand теперь PGPlugin. Просто вставьте это. Документация PhoneGap, кажется, повсюду.

#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

ЧАСТЬ D

Затем добавьте часть Google Analytics в проект. Это та часть, которую предоставляет Google, но ее удобно включить в папку с плагинами ios GoogleAnalytics / GoogSDK.

В Xcode перейдите в папку GoogleAnalytics/GoogSDK и перетащите файлы GANTracker.h и libGoogleAnalytics.a в каталог плагинов.

В основном вам нужно скопировать их из «синей» папки GoogleAnalytics/GoogSDK в «желтую» папку, чтобы их можно было найти по заголовочным файлам.


ЧАСТЬ E

Затем нам нужно добавить в проект sqlite (где Google Analytics хранит данные, когда он не в сети) и CFNetwork (чтобы Google Analytics мог загружать данные).

В Xcode нажмите на проект (синяя вещь вверху файла). Нажмите на основную цель. Затем нажмите на этапы сборки. Третий пункт в списке - это «Связь бинарных файлов с библиотеками». Обратите внимание, что есть два из них .. выберите верхний. Откройте его и нажмите на знак +. Добавьте libsqlite3.0.dylib, затем добавьте CFNetwork.framework.


ЧАСТЬ F

Наконец (почти там) нам нужно настроить плагин. Перейдите к файлу PhoneGap.plist. Под плагинами добавьте еще одну запись с ключом как googleAnalyticsPlugin (имя javascript) и значением как GoogleAnalyticsPlugin (часть Obj-C).

Под ExternalHosts добавить запись *

Теперь попробуйте и запустите.Скрестив пальцы, это сработает.

Лучший способ протестировать его, запустить программу, а затем использовать новый режим Google Analytics Real Time (BETA), поскольку вы можете видеть, как страницы отслеживаются в реальном времени.

Вам необходимо перейти на новую версию Google Analytics (это должна быть очевидная ссылка вверху, чтобы перейти на новую версию).Откройте учетную запись GA, перейдите на Home..REAL_TIME ... Обзор.Вы должны увидеть трек страницы TEST, который появится через несколько секунд.

Примечание. Вы не можете отслеживать события в режиме реального времени.Вам нужно дождаться их обработки.

ПРОБЛЕМЫ

У меня возникли некоторые проблемы при просмотре источников компиляции и СсылкаБинарный с библиотеками .Части GoogleAnalytics будут отображаться красным цветом.Если они выделены красным, это означает, что ваш проект не может их найти, и я думаю, как вы решите это, зависит от вашей версии XCode, поэтому вам, возможно, придется немного погуглить, чтобы решить эту проблему.Я удалил GoogleAnalytics (нажмите знак -) и перетащил файл внутрь. Если он отображается как «правильный значок» (в отличие от красной рамки), он должен был сработать.

Вы также делаете это на Android?

Я предполагаю, что если вы используете PhoneGap, вы, вероятно, также делаете версию для Android.Если это так, вы можете проверить это сравнение Q + A для различий.

1 голос
/ 14 декабря 2011

Большое спасибо за вашу прекрасную работу, единственное замешательство было с этим блоком:

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

Нужно было поставить его вне функции onready, чтобы оно работало в моем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...