Наше приложение создано для iOS с Cordova/Phonegap, и мы пытаемся добавить некоторые сторонние библиотеки для мониторинга производительности приложений. Поскольку наше приложение также использует Salesforce Hybrid SDK, мы в настоящее время не можем обновить Кордову, поэтому наша версия застряла на 2.3.0. Все сервисы, которые мы рассмотрели, требуют загрузки и инициализации их SDK в методе didFinishLaunchingWithOptions
в AppDelegate.m. Например, краткие инструкции запуска для одной библиотеки выглядит следующим образом:didFinishLaunchingWithOptions метод не существует в AppDelegate.m (Cordova 2.3.0)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// other code for your app
// ...
[Crittercism enableWithAppID: @"52e9510d4002056e4300000b"];
}
Я могу включать заголовочные файлы без каких-либо проблем, но метод этот должен быть не существует в AppDelegate.m, предоставленной рамки. Когда я пытаюсь добавить свой собственный метод - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
в AppDelegate.h и AppDelegate.m, контейнер Phonegap никогда не загружается, и приложение просто зависает с черным экраном. Есть ли другой способ добавить этот метод в приложение AppDelegate, или с Кордовой есть другое место, где могут быть загружены и инициализированы сторонние библиотеки, такие как криттеризм? Обновление Кордовы до новейшей версии не является вариантом. Для справки, полная реализация AppDelegate.m, что я в настоящее время является:
#import "AppDelegate.h"
@implementation AppDelegate
#pragma mark - App lifecycle
+ (NSString *) startPage
{
NSString *superValue = [super startPage];
return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"test"] ? @"test.html" : superValue;
};
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)w {
return (NSUInteger)[application supportedInterfaceOrientationsForWindow:w] | (1<<UIInterfaceOrientationPortrait);
}
// NOTE: be sure to call all super methods you override.
@end