如何使用Phonegap 2.7将屏幕保留在iPhone上

时间:2013-07-03 15:05:03

标签: iphone ios cordova phonegap-plugins

我使用带有GPS的cordova 2.7进行ios应用程序(ios6),我需要Iphone的屏幕始终打开。我想避免手机入睡。

我尝试安装此插件https://github.com/phonegap/phonegap-plugins/tree/master/iOS/PowerManagement,但显然它太旧了。

怎么做?

4 个答案:

答案 0 :(得分:8)

如果您愿意亲自动手,可以通过制作Cordova插件轻松解决这个问题。

如果您还没有制作Cordova插件,那么它绝对是您应该掌握的技能,因为并非所有功能都可以通过PhoneGap插件获得,并且它通常很容易使其工作。详细信息可在PhoneGap Plugin Development Guide

中找到

为此,插件的JavaScript端将类似于

cordova.exec(function(winParam) {}, function(error) {}, "myPlugin", "preventSleep", []);

在这种情况下,您的PhoneGap会在preventSleep类中查找名为myPlugin的方法。

接下来,您的preventSleep方法看起来像

- (void)preventSleep:(CDVInvokedUrlCommand*)command
{
    [UIApplication sharedApplication].idleTimerDisabled = YES;

    CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}

现在,您可以设置allowSleep设置[UIApplication sharedApplication].idleTimerDisabled = NO;

的相应方法

答案 1 :(得分:1)

这是PhoneGap Build支持的最新插件:https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin

答案 2 :(得分:0)

我为更新版本的Phonegap(2.5到2.9)更新了此插件 - 您可以在我对this question的回答中找到源代码和我的XCode测试项目。

您确定要始终保持屏幕开启吗?苹果在允许的时候是相当严格的,如果不是有充分理由可能会拒绝你的应用程序。如果您只需要允许应用程序继续运行并在后台接收位置更新,则可以在没有插件的情况下通过将以下内容添加到项目中来完成.plist:

<key>UIBackgroundModes</key>
<array>
  <string>location</string>
</array>

或者在XCode中,打开.plist并添加“必需的背景模式”键,并为“位置更新的应用寄存器”值

答案 3 :(得分:0)

我不确定您是否已经看过这个,但看起来有一个插件可用于iOS上的phonegap版本,显然很快就会推出Android版本。

Link here