在iPhone独立Web应用程序中从键盘中删除表单助手

Thi*_*iff 16 html css iphone iphone-web-app iphone-standalone-web-app

是否可以从独立的Web应用程序中的iPhone弹出键盘中删除表单助手?我知道普遍的共识是它在Mobile Safari中是不可能的,但是一个独立的应用程序在a中运行UIWebView,并且在几个方面(示例)的功能不同,所以我希望这可能是可能的.

您可以在键盘正上方看到它:

在此输入图像描述

Previous和Next按钮在<form>输入之间循环.但我有一个<input>元素,所以他们被禁用.完成按钮隐藏键盘,但由于我有一个高度灵活<ul>(占用键盘和之间的空间<input>),而我在此页面上没有任何其他内容,它没有任何意义.

在一个小屏幕上,几乎有一半的屏幕被键盘占用,构成这个工具栏的44个像素是一个巨大的空间浪费(一个整体<li>的价值).

原生iOS应用程序可以删除它,所以我知道它至少可以在手机上,我只是没有发现在Web应用程序中这样做的方法.这是来自Facebook应用程序,页面非常类似于我的:

在此输入图像描述

我尝试过使用一个<input>没有包装<form>而且还使用了一个contenteditable <div>,但结果是一样的.有几种自定义-webkit-样式可以控制Web应用程序界面的各个方面,但是它们的文档记录很少,而且搜索没有任何内容.

有没有办法删除网络应用程序中的表单助手?

Jor*_*hen 12

如果您的应用程序是一个包含在本机Objetive-C应用程序中的Web应用程序,则可以通过操作键盘视图来实现.

首先,注册接收keyboardDidShow通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

当键盘显示时,这将调用以下方法:

-(void)keyboardDidShow:(NSNotification*)notif
{
    NSArray *array = [[UIApplication sharedApplication] windows];

    for (UIWindow* wind in array) {
        for (UIView* currView in wind.subviews) {
            if ([[currView description] hasPrefix:@"<UIPeripheralHostView"]) {
                for (UIView* perView in currView.subviews) {
                    if ([[perView description] hasPrefix:@"<UIWebFormAccessory"]) {
                        [perView setHidden:YES];
                    }
                }

            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这个方法遍历屏幕上的视图,寻找表单助手并隐藏它.

注意:Apple可能不会拒绝这一点,因为我已经看到它被Facebook等使用,但这种技术可能会在即将推出的iOS版本中出现.


set*_*ler 5

所有迹象都表明这是不可能的,包括这里的几个 问题 .