如何在Phonegap 1.0中保持iphone屏幕?

时间:2011-08-08 23:39:28

标签: iphone cordova

我正在尝试在我的应用运行时保持iphone屏幕开启。我关注这篇文章: phonegap, iphone and the big bad 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 但它也没有用。

有人可以给我一些建议吗?谢谢!

更新:谢谢大家!事实证明我正在改变错误的fil(PhoneGapDelegate.m)。永远不会调用该文件中的applicationdidfinishlaunching方法。要更改的文件是AppDlegate.m。

3 个答案:

答案 0 :(得分:2)

github

上有一个phonegap插件

它允许直接从.js设置和重置“idletimerdisabled”。它也更清洁,因为你不修改你的phonegap代码,也可以在android上工作。

答案 1 :(得分:1)

根据这个问题:iOS: How to stop the device standby timer?您需要做的就是:

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

请确保return YES;行之前添加此以确保其执行。

Apple建议您仅根据需要使用此功能:

  

重要事项:您应该仅在必要时设置此属性,并且当需要不再存在时,应确保将其重置为NO。大多数应用程序应在闲置计时器结束时让系统关闭屏幕。这包括音频应用程序。通过适当使用音频会话服务,当屏幕关闭时,播放和录制不会中断。应该禁用空闲计时器的唯一应用程序是通过零星的用户交互来映射应用程序,游戏或类似程序。


然而

根据这篇文章:Phonegap, iphone - applicationDidFinishLaunching not invoking由于Xcode项目文件,PhoneGap不会调用此函数。

根据答案的说法,我会尝试将以下功能实施到您的app委托中:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [application setIdleTimerDisabled:YES];
}

答案 2 :(得分:0)

我发现以下内容适用于我:

- (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];
}