記一次 Harmony WebView Script error. 的報錯解決

315 阅读2分钟

背景

Vite5 + Vue3 項目,主要在 App WebView 中使用。

項目使用安卓、iOS WebView 中使用,現在 App 要開發鴻蒙版本,App 對項目移植開發。

問題

在 Harmony WebView 中頁面不能完全展示,後續查看控制台有報錯:

Script error.

解決

Script error.

查找了一些有關 Script error. 的文章,大多是數據監控服務商的介紹文章。簡而言之,“Script error.”有时也被称为跨域错误。当网站请求并执行一个托管在第三方域名下的脚本时,就可能遇到该错误。最常见的情形是使用CDN托管JS资源。

這個報錯沒有具體信息,不會顯示行號等。如果這樣打印:

window.onerror = function (message, url, line, column, error) {
    console.log(message, url, line, column, error);
  }

將會得到:

"Script error.", "", 0, 0, undefined 

不影響運行

但是 Script error. 往往来源于第三域名下的脚本,如果不影响应用的运行,可以忽略。

我們的應用程序應該沒有用到第三方域名下的腳本,如果有,應該其他平台也會報錯,這個報錯應該是不限平台的。

而且在控制台的第一行就報了這個錯,所以這個報錯有點奇怪。

而且頁面也部分加載渲染了,懷疑沒有完全展示,只是接口不通或者和客戶端交互的問題。

vconsole 或者 eruda 中的 console

調試的時候發現,在頁面中添加 console 打印信息,頁面熱更新的時候能夠打印出來,但是刷新頁面就不會打印,不知道是什麼原因。

通過這種調試方式,發現確實是和客戶端交互的問題,Web 向客戶端發送信息,沒有接收到返回。

<未完...>

参考