Как сохранить экран iphone в Phonegap 1.0? - PullRequest
5 голосов
/ 09 августа 2011

Я пытаюсь держать экран iphone включенным, пока работает мое приложение. Я подписался на этот пост: PhoneGap, Iphone и большой плохой idleTimerDisabled

и сделал что-то подобное в PhoneGapDelegate.m:

-(BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  // existing code ...
  application.idleTimerDisabled = YES; // I added this line
  return YES;   // existing code
}

но это не сработало.

Я также попробовал этот подход: http://groups.google.com/group/phonegap/browse_thread/thread/5eeace5c416719ec/d7180ef5a3a9081d?lnk=gst&q=lock#d7180ef5a3a9081d но это тоже не сработало.

Может кто-нибудь дать мне несколько советов? Спасибо!

ОБНОВЛЕНИЕ: Спасибо всем! Оказывается, я менял неправильный файл (PhoneGapDelegate.m). Метод applicationdidfinishlaunching в этом файле никогда не вызывается. Изменяемый файл - AppDlegate.m.

Ответы [ 3 ]

2 голосов
/ 20 апреля 2012

На github

имеется плагин для телефонной связи.

Позволяет устанавливать и сбрасывать «idletimerdisabled» непосредственно из .js. Это также чище, так как вы не модифицируете свой код телефонного промежутка, а также будет работать на Android.

1 голос
/ 09 августа 2011

Согласно этому вопросу: iOS: Как остановить таймер ожидания устройства? все, что вам нужно сделать, это:

-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
    [application setIdleTimerDisabled:YES];
    return YES;
}

Убедитесь, что вы добавили перед строкой return YES;, чтобы убедиться, что она выполняется.

Apple рекомендует использовать это только по мере необходимости:

Важное замечание: Вы должны устанавливать это свойство только в случае необходимости и обязательно должны сбросить его на NO, если необходимость больше не существует. Большинство приложений должны позволять системе выключать экран по истечении таймера простоя. Это включает в себя аудио приложения. При правильном использовании Audio Session Services воспроизведение и запись продолжаются непрерывно, когда экран выключается. Единственные приложения, которые должны отключать таймер простоя, - это сопоставление приложений, игр или аналогичных программ с периодическим взаимодействием с пользователем.


Однако

Согласно этому сообщению: Phonegap, iphone - applicationDidFinishLaunching не вызывает PhoneGap не вызывает эту функцию из-за файла проекта Xcode.

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

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [application setIdleTimerDisabled:YES];
}
0 голосов
/ 09 августа 2011

Я нашел следующие работы для меня:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    NSArray *keyArray = [launchOptions allKeys];
    if ([launchOptions objectForKey:[keyArray objectAtIndex:0]]!=nil) 
    {
        NSURL *url = [launchOptions objectForKey:[keyArray objectAtIndex:0]];
        self.invokeString = [url absoluteString];
    }

    application.idleTimerDisabled = NO;
    application.idleTimerDisabled = YES;

    return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...