自从升级到iOS 13.1.2之后,Mobile Safari(同样通过Cordova)似乎不喜欢我对IndexedDB的实现。尝试打开IndexedDB或执行onupgradeneeded时,我特别收到“ AbortError:操作被中止”的错误。一切似乎在iOS 12上都可以正常运行。那么在最新一轮的更新中是否对Mobile Safari的IndexedDB实现进行了更新?我似乎找不到任何文档。
我确认这行代码失败:
IDBDatabase db = (IDBDatabase) openDbRequest.result;
Run Code Online (Sandbox Code Playgroud)
美国东部时间19/10/19 8:30更新:我确认在iOS 13.1.2设备上安装Google Chrome时也存在此问题。我在这里发现,“由于苹果公司针对iOS的限制政策,在iOS上运行的Chrome和Opera实际上是后端的Safari浏览器,假装为Chrome或Opera。因此,即使在Chrome,Oper或Firefox上,它实际上也是由Safari提供的IndexedDB ”
XMLHttpRequest是来自GWT客户端的HTTP调用的替代方案,允许控制请求/响应的所有方面.但是怎么用呢?javadoc地址:http://www.gwtproject.org/javadoc/latest/com/google/gwt/xhr/client/class-use/XMLHttpRequest.html
我正在使用带有 elemental2-1.0.0-RC1 的 GWT 2.9。
以下代码ClassCastException在运行时抛出 a :
DocumentRange documentRange = Js.cast(DomGlobal.document); // Fails
Range range = documentRange.createRange(); // Never reaches here
Run Code Online (Sandbox Code Playgroud)
当我改为使用 an 时Js.uncheckedCast(),它成功了:
DocumentRange documentRange = Js.uncheckedCast(DomGlobal.document);
Range range = documentRange.createRange(); // Works
Run Code Online (Sandbox Code Playgroud)
的文档Js.uncheckedCast()说:
“你应该总是更喜欢定期投射(除非你知道自己在做什么!)。”
我不知道为什么我必须使用它,所以我感到紧张。有人可以解释如何Js.cast()执行其类型检查以及为什么我需要Js.uncheckedCast()在这种情况下使用 an吗?
让我说我有一个com.google.gwt.dom.client.Document gwtDocument节点,我想将其转换为elemental2.dom.Document?
由于Document扩展了JavaScriptObject,我认为我可以做类似的事情:
elemental2.dom.Document elementalDoc = (elemental2.dom.Document)(gwtDocument);
Run Code Online (Sandbox Code Playgroud)
但是,使用jsinterop的elemental2类不会扩展JavaScriptObject.那么如何在两者之间进行转换呢?
谢谢!