cordova-dialogs-plugin中的数字输入

时间:2015-10-08 21:39:07

标签: javascript html cordova ionic

我正试图找到答案,但我找不到解决它的问题。

我正在使用ionicPopup向用户询问一些输入。此弹出窗口具有inputType属性,如果为number,则会显示数字键盘。这是用户的最佳方式,因为我只要求数字。

对于ionicPopup我正在使用:

$ionicPopup.prompt({
            title: 'Weight',
            template: 'Add new weight ' + '(' + $scope.measurementProfile + ')',
            inputType: 'number',
            inputPlaceholder: convertDisplay(item.weight),
            cancelText: 'Cancel',
            okText: 'Ok'
        }).then(function (res) {
          ....

然后我用这些行(不是我的)切换到cordova-dialogs-plugin

// Override the default HTML alert with native dialog - requires the cordova dialogs plugin
        if (navigator.notification) {
            window.alert = function (message) {
                navigator.notification.alert(
                    message,    // message
                    null,       // callback
                    "MyApp",      // title
                    'OK'        // buttonName
                    );
            };
        }

你得到了一种本土风格。所以:

navigator.notification.prompt('Add new weight ' + '(' + $scope.measurementProfile + ')', 
            function(res){
                add(res, id);
            },
            'MyApp', ['Ok', 'Cancel'],'');

将获得这个漂亮的原生警报/提示,但它不支持像{ionvopup这样的inputType

Native iOS prompt style

我迷路了。我需要编辑cordova-dialogs-plugin才能接受号码吗?我已经阅读了文档而一无所获。

谢谢!

2 个答案:

答案 0 :(得分:0)

@Esselans,
Google:phonegap android force numeric keyboard
FWIW: Cordova 将代替phonegap。

您的回答是第一篇文章:Triggering Numeric Keyboards with HTML5

您的问题的答案是:<input type="number" step="0.01">

答案 1 :(得分:0)

在插件的CDVNotification.m中,您可以在此处添加一行:

 if ([dialogType isEqualToString:DIALOG_TYPE_PROMPT]) {
[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
                 textField.text = defaultText;
                 //Use the number pad by adding this line
                 textField.keyboardType=UIKeyboardTypeNumberPad; 
                }];
            }