我试着用cordova 2.7将这个插件安装到iOS上。我使用Xcode
我放进了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 pluginJSON =[ "PowerManagement1817140935","PowerManagement","release",]
发布于 2013-07-10 22:21:42
github上插件的版本需要对Phonegap的最新版本进行更新。我需要使用它所以我更新了它。我的包含更新插件的XCode测试项目可以下载从这里开始。更新插件的源代码:
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;
@endPowerManagement.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];
}
@endpowermanagement.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;
});https://stackoverflow.com/questions/17448783
复制相似问题