Webview中的虚拟键盘重叠输入

时间:2019-03-18 13:34:54

标签: android html angular genero 4js

我不确定任何人都能提供帮助,因为我遇到了Genero的问题,我对此并不欢迎,但是我会接受大家可能会遇到的任何一般性想法。

我有一个Genero网络应用程序,该应用程序显示Angular应用程序的网络视图,而我遇到的问题是,当该视图(基于Chrome v72)获得焦点以允许用户进行查看时,它不会在输入下滚动看看他在打什么。

在浏览器中加载页面效果很好,我已经在也可以运行的Android Studio Webview中尝试过了。

所以我不知道是Genero本身引起了问题,还是可能是它呈现视图,某种不同的浏览器配置等某种特定方式。

欢迎您提出所有想法,如果您遇到此类问题,无论遇到什么情况,我都会尝试一切,并且我希望避免在输入下创建一些空格来创建空格并手动滚动焦点

4 个答案:

答案 0 :(得分:1)

确保您使用的是INPUT语句,而不是与WEBCOMPONENT一起使用DISPLAY。据报道是使用Android https://4js.com/support/issue/?id=GMA-1319,但是相同的主体可以应用iOS,GBC,GDC

否则,请与您当地的4Js支持联系人联系(假设您正在维护中)。过去,在某些情况下https://4js.com/support/issue/?id=GMA-920已经在该区域完成工作,因此可能需要对该区域进行一些改进。

PS关于您的开头段落,Genero 4Js提供付费支持模式。矛盾的是,您在这里不会看到很多4J Genero问题,因为应该由您的本地支持联系人和2.我们的开发人员论坛回答。然后,这在使用诸如“堆栈溢出”帖子数量之类的语言流行度度量中不利于我们。

答案 1 :(得分:0)

正在发生的事情是,您的div高度无法适应虚拟键盘。

我建议在构造函数中执行以下操作:

const $resizeEvent = fromEvent(window, 'resize')
       .map(() => {
         return window.innerHeight;
       })
       .debounceTime(20).subscribe(data => {
          this.overflowHeight = `${data}px`;
       });

此操作将检测到调整大小,当键盘显示时它将触发。 然后,将高度更改为div的新高度。 当它关闭时,它将再次触发并再次使其恢复正常大小。

在您的html中:

<div [ngStyle]="'height': overflowHeight, 'overflow': 'auto'}" [scrollTop]="scrollHeight"></div>

抬头(如果使用子视图),请确保检查包围了多少像素并确定高度-像素。

每个输入都必须具有唯一的ID:

<input id={{uniqueId}} (focus)="scrollTo(uniqueId) (scroll)="setScrollHeigth($event)" />

然后您做

private scrollTo(_index: any) {
        if (window.screen.width === 360) {
            height = document.getElementById(_index).offsetTop;
            if (height > 0) { this.scrollHeight = height; }
            else if (this.scrollHeigthElm > 0) { this.scrollHeight = 0; }
        }
} 

private setScrollHeigth(_event: any) { 
    this.scrollHeigthElm = _event.srcElement.scrollTop; 
} 

此操作是检查滚动是否高于零然后将其移动。并在滚动条为0时重置它。

答案 2 :(得分:0)

好吧,这似乎更像是Genero的问题,因为它处理Web视图的方式是将虚拟键盘放在Web内容上而不是内部。我们把它带到了他们的论坛上,他们正在调查它。

答案 3 :(得分:0)

这是一个纯粹的Genero问题,据我所知,此问题已得到解决。