首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插件Phonegap电源管理Ios 6

插件Phonegap电源管理Ios 6
EN

Stack Overflow用户
提问于 2013-07-03 13:02:53
回答 1查看 840关注 0票数 1

我试着用cordova 2.7将这个插件安装到iOS上。我使用Xcode

我放进了config.xml

代码语言:javascript
复制
<plugin name="PowerManagement" value="PowerManagement" />  

在文件夹插件中: PowerManagement.h和PowerManagement.m文件

在我的html中:

代码语言:javascript
复制
  cordova.require('cordova/plugin/powermanagement').acquire(
                function() { alert( 'MARCHE' ); },
                function() { alert( 'oh no!' ); }

我的iPhone里没有任何提醒,我不知道为什么。

我有一个错误:CDVPlugin类PowerManagement (pluginName: PowerManagement)不存在。2013-07-03 14:36:34.619错误:插件'PowerManagement‘找不到,或者不是CDVPlugin。查看config.xml中的插件映射。2013-07-03 14:36:34.625 -CDVCommandQueue executePending pluginJSON =[ "PowerManagement1817140935","PowerManagement","release",]

EN

回答 1

Stack Overflow用户

发布于 2013-07-10 22:21:42

github上插件的版本需要对Phonegap的最新版本进行更新。我需要使用它所以我更新了它。我的包含更新插件的XCode测试项目可以下载从这里开始。更新插件的源代码:

PowerManagement.h

代码语言:javascript
复制
/*
 * Copyright (C) 2011-2012 Wolfgang Koller
 *
 * This file is part of GOFG Sports Computer - http://www.gofg.at/.
 *
 * GOFG Sports Computer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * GOFG Sports Computer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with GOFG Sports Computer.  If not, see <http://www.gnu.org/licenses/>.
 */

/**
 * Cordova (iOS) plugin for accessing the power-management functions of the device
 */

#ifdef CORDOVA_FRAMEWORK
#import <CORDOVA/CDVPlugin.h>
#else
#import "CORDOVA/CDVPlugin.h"
#endif

/**
 * Interface which does the actual handling
 */
@interface PowerManagement :CDVPlugin {
}
/**
 * Sets the idleTimerDisable property to true so that the idle timeout is disabled
 */
- (void) acquire:(CDVInvokedUrlCommand*)command;

/**
 * Sets the idleTimerDisable property to false so that the idle timeout is enabled
 */
- (void) release:(CDVInvokedUrlCommand*)command;

@end

PowerManagement.m

代码语言:javascript
复制
/*
 * Copyright (C) 2011-2012 Wolfgang Koller
 * 
 * This file is part of GOFG Sports Computer - http://www.gofg.at/.
 * 
 * GOFG Sports Computer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * GOFG Sports Computer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with GOFG Sports Computer.  If not, see <http://www.gnu.org/licenses/>.
 */

/**
 * Cordova (iOS) plugin for accessing the power-management functions of the device
 */
#import "PowerManagement.h"

/**
 * Actual implementation of the interface
 */
@implementation PowerManagement
- (void) acquire:(CDVInvokedUrlCommand*)command;
{
    CDVPluginResult* pluginResult = nil;

    // Acquire a reference to the local UIApplication singleton
    UIApplication* app = [UIApplication sharedApplication];

    if( ![app isIdleTimerDisabled] ) {
        [app setIdleTimerDisabled:true];

        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
    }
    else {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ILLEGAL_ACCESS_EXCEPTION messageAsString:@"IdleTimer already disabled"];
    }

    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}


- (void) release:(CDVInvokedUrlCommand*)command;
{    
    CDVPluginResult* pluginResult = nil;

    // Acquire a reference to the local UIApplication singleton
    UIApplication* app = [UIApplication sharedApplication];

    if( [app isIdleTimerDisabled] ) {
        [app setIdleTimerDisabled:false];

        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
    }
    else {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ILLEGAL_ACCESS_EXCEPTION messageAsString:@"IdleTimer not disabled"];
    }

    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}
@end

powermanagement.js

代码语言:javascript
复制
/*
 * Copyright (C) 2011-2012 Wolfgang Koller
 * 
 * This file is part of GOFG Sports Computer - http://www.gofg.at/.
 * 
 * GOFG Sports Computer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * GOFG Sports Computer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with GOFG Sports Computer.  If not, see <http://www.gnu.org/licenses/>.
 */

cordova.define("cordova/plugin/powermanagement", function(require, exports, module) {
    var exec = require('cordova/exec');

    var PowerManagement = function() {};

    /**
     * Acquire a new wake-lock (keep device awake)
     * 
     * @param successCallback function to be called when the wake-lock was acquired successfully
     * @param errorCallback function to be called when there was a problem with acquiring the wake-lock
     */
    PowerManagement.prototype.acquire = function(successCallback,failureCallback) {
        exec(successCallback, failureCallback, 'PowerManagement', 'acquire', []);
    }

    /**
     * Release the wake-lock
     * 
     * @param successCallback function to be called when the wake-lock was released successfully
     * @param errorCallback function to be called when there was a problem while releasing the wake-lock
     */
    PowerManagement.prototype.release = function(successCallback,failureCallback) {
        exec(successCallback, failureCallback, 'PowerManagement', 'release', []);
    }

    var powermanagement = new PowerManagement();
    module.exports = powermanagement;
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17448783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档