Jquery mobile iOS 8 jquery mobile 1.4.4输入键盘不再隐藏页脚菜单

Jquery mobile iOS 8 jquery mobile 1.4.4输入键盘不再隐藏页脚菜单,jquery-mobile,cordova-3,Jquery Mobile,Cordova 3,iOS 8 jquery mobile 1.4 cordova 3.6.3任何模拟器、任何物理真实设备 问题在于,当键盘用于在表单字段中键入时,隐藏页脚 在iOS7上做得很好,现在点击输入元素时看起来不错,但是如果滚动表单,页脚会出现(固定在页面上),与其他一些输入字段重叠。找到了解决方案 iOS 必须在org.apache.cordova.dialogs插件的src文件夹中编辑CDVNotification.m和CDVNotification.h,如下所述: 因为不清楚新行放在哪里,所以这是C

iOS 8 jquery mobile 1.4 cordova 3.6.3任何模拟器、任何物理真实设备

问题在于,当键盘用于在表单字段中键入时,隐藏页脚

在iOS7上做得很好,现在点击输入元素时看起来不错,但是如果滚动表单,页脚会出现(固定在页面上),与其他一些输入字段重叠。

找到了解决方案

iOS

必须在org.apache.cordova.dialogs插件的src文件夹中编辑CDVNotification.m和CDVNotification.h,如下所述:

因为不清楚新行放在哪里,所以这是CDVnotification.h中的新代码

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioServices.h>
#import <Cordova/CDVPlugin.h>

@interface CDVNotification : CDVPlugin <UIAlertViewDelegate>{}

@property (strong) NSString* keyboardShowcallbackId;
@property (strong) NSString* keyboardHidecallbackId;

- (void)alert:(CDVInvokedUrlCommand*)command;
- (void)confirm:(CDVInvokedUrlCommand*)command;
- (void)prompt:(CDVInvokedUrlCommand*)command;
- (void)beep:(CDVInvokedUrlCommand*)command;

- (void)keyboardShow:(CDVInvokedUrlCommand*)command;
- (void)keyboardHide:(CDVInvokedUrlCommand*)command;

@end

@interface CDVAlertView : UIAlertView {}
@property (nonatomic, copy) NSString* callbackId;

@end
然后在cordova/phonegap应用程序中找到ondeviceready事件的位置,并粘贴两行cordova.exec

onDeviceReady: function() {
    app.receivedEvent('deviceready');

    navigator.splashscreen.hide();

}, // fine onDeviceReady

receivedEvent: function(id) {

   console.log('Received Event: ' + id);

    if (isMobile.iOS()) {

        alert("this is iOS"); //

        cordova.exec(function(){  $("#footer").hide();  },function(){console.log("error");},"Notification","keyboardShow",[]);

        cordova.exec(function(){  $("#footer").show();  },function(){console.log("error");},"Notification","keyboardHide",[]);

    } else { 

        alert("this is android"); 

        document.addEventListener("showkeyboard", function(){ $("#footer").hide(); }, false);
        document.addEventListener("hidekeyboard", function(){ $("#footer").show(); }, false);


    }



}
安卓

以前的解决方案,js插入代码,在css启动虚拟键盘时检测窗口大小,仍然在Android中工作

<script type="text/javascript">
document.write( '<style>#footer{visibility:hidden}@media(min-height:' + ($( window ).height() - 10) + 'px){#footer{visibility:visible}}</style>' );
</script> 
如果是Android设备


希望它能帮助像我这样的人从一个月以来一直在努力解决这个问题:)

iOS8、jquerymobile1.4.4、cordova3.6.3——这里没有问题。打开键盘时没有跳脚。我同意没有跳脚,但是如果你有一个很长的表单,滚动页面,你会发现页脚出现。我测试你的“错误”的表单是一个注册表单,有15个输入字段和3个选择区域。不要跳跃或移动。嗯,好的。您是否也尝试输入了一些内容?如果你什么也不做,只是滚动,对我来说也没有错误,但只要你尝试填写字段或用“>”转到下一个按钮跳转到下一个字段,页脚就会出现。
<script type="text/javascript">
document.write( '<style>#footer{visibility:hidden}@media(min-height:' + ($( window ).height() - 10) + 'px){#footer{visibility:visible}}</style>' );
</script> 
document.addEventListener("showkeyboard", function(){ $("#footer").hide(); }, false);
document.addEventListener("hidekeyboard", function(){ $("#footer").show(); }, false);