关于webview 和InAppWebView onWebViewCreated有时候不执行,导致图表不出来问题
- 如果您在使用 InAppWebView 中的 onWebViewCreated 回调时发现有时候不执行,这可能涉及到一些异步操作或时机问题。以下是一些可能导致 onWebViewCreated 不执行的常见情况和解决方法:
- Widget Build 完成前调用: onWebViewCreated 是在 InAppWebView Widget 构建完成后才会被调用。如果在 InAppWebView 的 onWebViewCreated 方法调用之前,整个 Widget 还没有被构建完成,可能会导致这个回调不执行。
解决方法:确保 InAppWebView Widget 已经被正确地包含在 Widget 层次结构中,而不是在 onWebViewCreated 调用之前。
- 加载错误或异常: 如果 InAppWebView 在初始化时出现错误,可能会导致 onWebViewCreated 回调不执行。
解决方法:检查是否有异常抛出,尝试将 InAppWebView 放置在一个 try-catch 块中,以便捕获可能的异常。
- Web 页面加载速度: 如果 Web 页面加载速度非常快,可能导致 onWebViewCreated 回调被忽略。
解决方法:可以尝试在 onWebViewCreated 回调内执行一些异步操作,以便确保回调被执行。
- 控制器复用: 如果您的 InAppWebView 控制器被复用了(首先不要+key,如果InAppWebView 封装页面能分开最好),onWebViewCreated 回调可能不会再次执行。
解决方法:确保控制器没有被重复使用。您可以尝试创建一个新的控制器实例,而不是复用已有的控制器。