我无法在英特尔XDK HTML5 + Cordova中调整亮度。我已经导入了一个@ https://github.com/fiscal-cliff/phonegap-plugin-brightness的phonegap / cordova插件,但它仍然无法执行任何操作。 任何建议都会得到很大的帮助! 这是我的代码:
<script src="intelxdk.js"></script>
<script src="cordova.js"></script>
<script src="xhr.js"></script>
<script src="xdk/init-dev.js"></script>
<script type="application/javascript" src="lib/jquery.min.js"></script>
<script type="application/javascript" src="jqm/jquery.mobile-min.js" data-ver="0"></script>
<script type="application/javascript" src="js/app.js"></script>
<script type="application/javascript" src="js/init-app.js"></script>
<link rel="stylesheet" media="screen" type="text/css" href="css/colorpicker.css">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script type="text/javascript" src="js/colorpicker.js"></script>
<script type="text/javascript" src="js/eye.js"></script>
<script type="text/javascript" src="js/utils.js"></script>
<script type="text/javascript" src="js/layout.js?ver=1.0.2"></script>
<script type="application/javascript" src="sidebar/js/hammer.js"></script>
<script type="application/javascript" src="sidebar/js/jquery.hammer.js"></script>
<script type="application/javascript" src="sidebar/js/swipe-hammer.js"></script>
<script type="application/javascript" src="sidebar/js/sidebar.js"></script>
<script type="application/javascript" src="js/index_user_scripts.js"></script>
<script type="application/javascript" src="xdk/ad/jqm_subpage.js"></script>
<script type="application/javascript">
document.addEventListener('deviceready', onDeviceReady);
function onDeviceReady() {
window.brightness = cordova.require("cordova.plugin.Brightness.Brightness");
}
function setBrightness(value) {
brightness.setBrightness(value, win, fail);
alert(value);
}
function getBrightness() {
brightness.getBrightness( win, fail);
alert(brightness.getBrightness( win, fail));
}
function win(status) {
alert('Message: ' + status);
}
function fail(status) {
alert('Error: ' + status);
}
getBrightness();
</script>
<div class="upage-outer">
<div class="upage-content" id="page_54_58">
<a class="widget uib_w_4 d-margins settings-button" data-uib="jquery_mobile/button" data-ver="0" data-role="button" data-icon="gear" data-iconpos="notext" id="settings_button">Settings Button</a>
</div>
<div class="inner-element uib_w_3 uib_sidebar leftbar bar-bg thumb-bg bar-gutter" data-uib="layout/left_sidebar" data-ver="1" data-anim="{'style':'overlap', 'v':200, 'side':'left', 'dur':200}">
<div class="sidebar-content content-area vertical-col">
<div class="widget uib_w_1 no_wrap no_swipe-x with-label d-margins brightness" data-uib="jquery_mobile/slider" data-ver="0">
<label class="narrow-control label-inline"><i class="fa fa-adjust font-icons"> </i>
</label>
<div class="wide-control">
<input type="range" value="50" min="0" max="100" step="1" name="brightness" style="display:none;" onchange="setBrightness(this.value)" data-highlight="true">
</div>
</div>
<div class="table-thing with-label widget uib_w_2 d-margins screencolor" data-uib="jquery_mobile/input" data-ver="0">
<label class="narrow-control"><i class="fa fa-eyedropper font-icons"> Screen Color</i>
</label>
<input class="wide-control" type="hidden" name="screencolor" id="screencolor">
<p id="colorpickerHolder"></p>
</div>
</div>
</div>
</div>
</div>
<div class="upage vertical-col left" id="settings" data-role="page">
<div class="upage-outer">
<div class="upage-content content-area vertical-col left" id="page_69_80">
</div>
</div>
</div>
答案 0 :(得分:1)
您在设备就绪事件触发前呼叫getBrightness();
。此时可能无法加载cordova插件。此外,您正在引用在deviceready事件期间设置的窗口变量的亮度。
快速解决方法是将getBrightness()
来电转移到onDeviceReady()
功能。
function onDeviceReady() {
window.brightness = cordova.require("cordova.plugin.Brightness.Brightness");
getBrightness();
}
现在我们在cordova设置插件后调用该方法。您可以采取的另一种方法是将每个插件调用包装在一个deviceready处理程序中,或者将您的函数作用于设备准备好的函数。