2013-07-03 82 views
1

我試圖用cordova 2.7將這個插件安裝到iOS。我使用的Xcode插件Phonegap電源管理Ios 6

我把在config.xml

<plugin name="PowerManagement" value="PowerManagement" /> 

在文件夾插件:PowerManagement.h和PowerManagement.m文件

,並在我的html:

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] [Line 116] FAILED pluginJSON = [「PowerManagement1817140935」,「PowerManagement」,「release」,[]]

+0

是否包含powermanagement.js並將其鏈接到index.html中? – jcesarmobile

+0

\t \t user2507113

+0

該插件可能已過時 – jcesarmobile

回答

3

github需要的插件版本需要更新Phonegap的最新版本。我需要使用它,所以我更新了它。我的包含更新插件的XCode測試項目可以下載from here。爲更新的插件的源代碼:

PowerManagement.h

/* 
* 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

/* 
* 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

/* 
* 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; 
});