返回

绝妙三招!轻松解决uni-app运行微信小程序报错 routeDone with a webviewId 2 that is not the current page

前端

uni-app 运行微信小程序时出现“routeDone with a webviewId 2 that is not the current page”错误:终极解决指南

第一步:深入了解问题

当你在兴致勃勃地开发 uni-app 项目时,却突然遇到“routeDone with a webviewId 2 that is not the current page”的报错,你可能会不知所措。不用担心,让我们深入了解一下这个问题,并为你提供一个简单的三步解决方案。

webviewId 和 routeDone

首先,我们需要了解一下“webviewId”和“routeDone”。“webviewId”是一个用于标识 WebView 的 ID,每个 WebView 都有一个唯一的“webviewId”。在 uni-app 中,每个页面都会创建一个 WebView,因此每个页面都有一个唯一的“webviewId”。

其次,“routeDone”是一个事件,表示页面加载完成。当页面加载完成后,WebView 会触发“routeDone”事件。

灰度版本

“灰度”是指将新版本的功能逐步向部分用户开放,以便收集反馈和进行测试。在微信开发者工具中,你可以选择是否将你的项目灰度到某个版本。

错误原因

现在,让我们回到“routeDone with a webviewId 2 that is not the current page”这个错误。这个错误通常发生在以下两种情况下:

  1. 你在开发 uni-app 项目时,使用了某个灰度版本的基础库。
  2. 你在微信开发者工具中设置了调试基础库,选择了某个灰度版本的基础库。

当发生上述情况时,WebView 在触发“routeDone”事件时,会使用灰度版本的基础库来处理。然而,当前页面可能使用的是非灰度版本的基础库。因此,WebView 就会抛出“routeDone with a webviewId 2 that is not the current page”这个错误。

第二步:三步解决方案

为了解决这个问题,我们可以通过以下三个步骤来进行:

  1. 点击微信开发者工具右上方的详情

    打开微信开发者工具,在右上方的工具栏中找到“详情”按钮,点击它。

  2. 点击本地设置

    在弹出的菜单中,选择“本地设置”。

  3. 点击调试基础库,选择低一点的且不在灰度中的版本

    在本地设置页面,找到“调试基础库”选项,点击它。在弹出的版本选择框中,选择一个低于当前版本且不在灰度中的版本。

完成以上三步,重新运行你的 uni-app 项目,你会发现报错已经消失,项目可以正常运行了。

第三步:深入探讨

为了帮助你更好地理解和解决这个问题,我们还可以探讨一些更深入的细节和相关知识。

  • 使用 Chrome 开发者工具进行调试

    你可以使用 Chrome 开发者工具来调试你的 uni-app 项目。在 Chrome 开发者工具中,你可以检查控制台中的错误消息,并在“网络”选项卡中查看请求和响应。这有助于你了解错误发生的根本原因。

  • 更新微信开发者工具

    确保你使用的是微信开发者工具的最新版本。新版本通常会修复错误并引入新功能。

  • 使用 uni-app 提供的工具

    uni-app 提供了一系列工具来帮助你开发和调试你的项目。这些工具包括 uni-app CLI 和 uni-app 调试器。

结论

“routeDone with a webviewId 2 that is not the current page”这个错误虽然令人沮丧,但它可以通过几个简单的步骤来解决。通过了解问题的原因、采取合适的步骤并探索其他调试选项,你可以轻松解决这个错误,让你的 uni-app 项目顺利运行。

常见问题解答

  1. 如何避免这个错误?

    为了避免这个错误,请确保你没有在灰度版本的基础库上开发或调试你的项目。

  2. 我尝试了所有步骤,但仍然出现错误怎么办?

    如果你已经尝试了所有步骤,但仍然出现错误,请尝试重新启动微信开发者工具。你还可以检查微信开发者工具的控制台中的错误消息,或在 GitHub 上搜索此错误。

  3. 灰度版本有什么用?

    灰度版本用于逐步向部分用户开放新版本的功能,以便收集反馈和进行测试。

  4. 什么是 WebView?

    WebView 是一个在应用程序中嵌入网页的组件。在 uni-app 中,每个页面都会创建一个 WebView。

  5. 如何查看当前页面的 webviewId?

    你可以在 Chrome 开发者工具中查看当前页面的 webviewId。打开开发者工具,转到“控制台”选项卡,然后在控制台中输入以下代码:

    document.documentElement.getAttribute('webviewid')