我有一个应用程序,它在phonegap上取消了。
我使用了一个慢速日期选择器插件,所以我想改变它。
我搜索并找到一个可用的;
https://github.com/phonegap/phonegap-plugins/tree/master/Android/DatePicker
我按照步骤。
但是我没有看到我的日期选择器,只看到一个空的输入元素。
我创建了一个包“com.phonegap.plugin”并将我的“DatePickerPlugin.java”放入此包中。
我创建了“datePickerPlugin.js”并将其放在assets / www文件下。
我将它包含在index.html
中<script type="text/javascript" charset="utf-8" src="datePickerPlugin.js"></script>
或
<script type="text/javascript" src="datePickerPlugin.js"></script>
我在我的元素
中添加了一个class =“nativedatepicker”<input type="text" class="nativedatepicker" id="get_date" name="get_date" />
我把代码放在我的index.html的脚本部分
$('.nativedatepicker').focus(function(event) {
var currentField = $(this);
var myNewDate = Date.parse(currentField.val()) || new Date();
// Same handling for iPhone and Android
window.plugins.datePicker.show({
date : myNewDate,
mode : 'date', // date or time or blank for both
allowOldDates : true
}, function(returnDate) {
var newDate = new Date(returnDate);
currentField.val(newDate.toString("dd/MMM/yyyy"));
// This fixes the problem you mention at the bottom of this script with it not working a second/third time around, because it is in focus.
currentField.blur();
});
});
$('.nativetimepicker').focus(function(event) {
var currentField = $(this);
var time = currentField.val();
var myNewTime = new Date();
myNewTime.setHours(time.substr(0, 2));
myNewTime.setMinutes(time.substr(3, 2));
// Same handling for iPhone and Android
plugins.datePicker.show({
date : myNewTime,
mode : 'time', // date or time or blank for both
allowOldDates : true
}, function(returnDate) {
// returnDate is generated by .toLocaleString() in Java so it will be relative to the current time zone
var newDate = new Date(returnDate);
currentField.val(newDate.toString("HH:mm"));
currentField.blur();
});
});
最后,我把插件放到我的plugins.xml
<plugin name="DatePickerPlugin" value="com.phonegap.plugin.DatePickerPlugin"/>
我的错误在哪里?
我使用cordova-1.9.0和Android 2.2。我还包括了我的Cordova库文件。
我几乎在stackoverflow中查看了有关此错误的所有问题,我没有找到任何有效的解决方案。
答案 0 :(得分:0)
你可以试试这个来获得日期。
function ShowDatePicker(){
var currentField = $('#nativedate');
var myNewDate = Date.parse(currentField.val()) || new Date();
// Same handling for iPhone and Android
window.plugins.datePicker.show({
date : myNewDate,
mode : 'date', // date or time or blank for both
allowOldDates : true
}, function(returnDate) {
var newDate = new Date(returnDate);
var curr_date = newDate.getDate();
var curr_month = newDate.getMonth() + 1; //Months are zero based
var curr_year = newDate.getFullYear();
if(curr_month < '10' || curr_month < 10 )
{
curr_month ='0'+curr_month.toString();
}
currentField.val(curr_date + "-" + curr_month + "-" + curr_year);
// This fixes the problem you mention at the bottom of this script with it not working a second/third time around, because it is in focus.
currentField.blur();
});
}
更改
<input type="text" class="nativedatepicker" id="get_date" name="get_date" />
到
<input type="text" id="nativedate" onclick="ShowDatePicker();" name="get_date" />