javascript - WKWebView 在触发 native 代码之前等待 DOM 渲染

标签 javascript ios objective-c hybrid-mobile-app wkwebview

我有一个包含 WKWebView 的混合 iOS 应用程序,我有一个 JavaScript 函数 callNative 可以在主线程中调用 Objective C native 代码。

在我的 JavaScript 中,我有以下结构

modifyDOM(); // e.g. .show(), and .hide() stuff
callNative('animateWKWebViewFrame');

出于某种原因,animateWKWebViewFrame( native 代码)在 modifyDOM 完成并完全呈现之前被调用。 (这会导致视觉故障。)

如何在调用 native 代码之前强制完整呈现 DOM 修改?

最佳答案

我假设您正在使用 jQuery,因为您的评论说 modifyDOM 调用 show()hide()。如果是这种情况,那么您应该依靠 complete 参数来提供一个函数,该函数将依次调用您的 native 代码。

相关文档在这里:
http://api.jquery.com/hide/#hide-duration-complete
http://api.jquery.com/show/#show-duration-complete

最后,这里是一些示例代码:

function modifyDOM()
{
  someElement.show(400, function() {callNative('animateWKWebViewFrame');});
}

关于javascript - WKWebView 在触发 native 代码之前等待 DOM 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29985506/

相关文章:

javascript - 在 AngularJS 模板中使用 Rails 助手

javascript - 如何使用 for() 或 JavaScript 中的其他东西缩短我的代码?

ios - UIImageView mask 层不来自角落直到滚动 PageViewController 第一次

ios - 错误 ITMS-9000 : Invalid segment Alignment

iphone - 使用运行时库覆盖方法

javascript - 无法在 for 循环中使用 JavaScript 创建 SQLite 表

javascript - 这两个正则表达式之间的差异可以忽略不计吗?

没有 Storyboard或图像的 iOS 启动图像

ios - 检查 Firebase 中是否存在记录

ios - 如何在 TableViewCell 中制作子 TableView