键盘使用iFrame /对象和JQTouch隐藏PhoneGap Build 3.1中的iOS输入字段

 手机用户2502880821 发布于 2023-02-10 15:14

我正在开发一个应用程序,将来自其他网站的表单加载到iFrame中.显示时,iFrame设置为100%宽度和高度.那个网站有JQTouch.

当我在iPhone上触摸iOS 7中的输入字段时,键盘会弹出并覆盖输入字段.它不会滚动,调整大小,甚至让我向下滚动以查看输入字段.如果我键入然后关闭键盘,则没有任何反应.

我已经尝试过我遇到过的一切.在元视口标记中添加/删除height = device-height没有做任何事情.最接近解决方案的是在config.xml中添加首选项"KeyboardShrinksView = true".这使它滚动(但不够),并永久地推动网站大约20px左右.

在过去的几天里,我一直在努力解决这个问题.这是一个错误吗?它是JQTouch与PhoneGap Build交互的方式吗?

更新:仍然没有修复,但测试我从iframe中取出表单的页面并使用window.location.href ="www.mywebsite.com"设置它; 他们的键盘工作在那种情况下.这对我来说不是一个有效的解决方案,但可能会提供有关它无法正常工作的信息.

更新2:我正在重构应用程序以使用window.location.href,而不是iframe或html对象.这会产生一些小问题,但这些问题比键盘不能正常工作要好.如果有人有答案,我仍然希望看到它.

1 个回答
  • Major Edit:我刚刚意识到InAppBrowser插件不能单独修复键盘错误.我做了更多的研究,这个主题有所帮助.我必须在每个元视口标记中添加"height = device-height"."width = device-width"应修复在移动Safari中查看网站的任何问题.最终结果如下:

    <meta name="viewport" content="initial-scale=1, minimum-scale=1, 
        maximum-scale=1, user-scalable=0, height=device-height, />
    

    其中一个也有一个分号,所以一定要检查并仔细检查语法错误,因为它们可能会导致问题.

    如果这不起作用,则可以尝试使用另一种解决方案来代替元视口修复或除此之外.在我链接的主题中有几条评论,并涉及对CSS的一些更改.对此的更改并未修复我的代码中的任何内容,但它至少帮助了一个人,因此如果您仍需要解决方案,则值得查看.

    我用iframe和object测试了这个修复程序,但是它没有用 - InAppBrowser仍然是必需的.

    /主要编辑.

    以下是一些对我有用的解决方法:

      使用InAppBrowser插件.这允许应用程序与InAppBrowser中加载页面中的loadstart/loadstop/loader错误事件进行交互.这是我建议的解决方案.但是,对于iOS 7,您需要手动隐藏状态栏,其解决方案在此处

      或使用window.location.href = [website url]加载页面.如果您不需要担心与应用程序交互或返回应用程序或链接到外部站点(我需要这两者),这就是要走的路.它非常简单,但缺少第一个解决方案的一些功能.

      或摆脱JQTouch.我无法做到这一点,但是当您使用PhoneGap构建应用程序时,其中大部分都是多余的.

    2023-02-10 15:17 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有