CodenameOne 问题处理 iOS 12 和 13 上 BrowserComponent

时间:2021-06-14 07:34:25

标签: javascript mouseevent ios-simulator codenameone wkwebview

我正在 iOS 模拟器上测试我的 CodenameOne 应用程序。

最好在主要的 iOS 版本上进行测试。

我的应用有一个 BrowserComponent 作为主界面,其中显示了一个框架列表。

框架内的文本不可选择。这是通过

iframe.style.pointerEvents="none";

管理鼠标事件以解决单按和长按。它是通过检测事件来完成的

"touchstart"

"touchend"

并计算时间间隔。使用了 Javascript 回调。

(还检测到“touchmove”以取消某些事件,因此只检测到“纯”触摸)

这在 CN1 模拟器、Android 设备和

在 iOS 10、iOS 11、iOS 14 的 iOS 模拟器上

但是

它不起作用

iOS 12。iOS 13

所发生的情况是 BrowserComponent 以这样一种方式使用鼠标事件,即选择句柄出现并且文本是可选择的。

我不得不重新发明轮子,因为我正在使用这个 CN1 跨平台工具。

还有一个未解决的问题:

https://github.com/codenameone/CodenameOne/issues/3378

这就是我不使用“mousedown”和“mouseup”事件的原因。但是在移动设备上使用“触摸”事件也不错。

(此外,我不得不说这些“触摸”事件在使用 WKWebView 的 SwiftUI 版本中也很有用,可以根据我的应用程序的需要管理鼠标事件。这是因为我必须在两者中使用相同的 Javascript 代码应用。 但是 WKWebView 不存在“选择句柄出现”问题。它只在 iOS 14 上测试过,所以我不能多说。)

现在它不适用于 iOS 12、13。

我的应用程序有一个适用于 iOS 14 的 SwiftUI 版本。因此 CN1 版本主要用于旧版本。如果 iOS 12 和 13 “消失”了,我认为仅针对 iOS 9、10、11 发布它是没有用的。

iOS 12、13 和 CN1 有什么问题?那些操作系统版本中的一些重大更改是否有特殊问题没有得到解决?

如果是iOS模拟器的BrowserComponent的问题,还需要考虑鼠标事件处理在iOS 14、11、10上是有效的。

那么它在真实设备上也会不稳定吗?

如何解决问题?

0 个答案:

没有答案