0

我有一个应用程序,它是在 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中查看了有关此错误的所有问题,但没有找到任何有效的解决方案。

4

1 回答 1

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" />
于 2013-07-20T05:25:11.563 回答