打包模式不同导致部分web页面不显示定位定界指导?

升级到beta1版本后,release构建出的应用部分web渲染不出内容,debug构建没有问题。

阅读 524
1 个回答

定位定界方法

问题排查:

  • 编译构建正向排查,怀疑是混淆导致,关闭混淆后验证仍然有问题。
  • 对比编译产物差异,debug和release的abc文件差别很大,debug包的abc文件是31MB,release包的abc文件是11MB,分析hilog日志没有模块加载异常,加载不显示的web页面前后没有异常日志点。

DevTools调试工具

DevTools 是一个 Web前端开发调试工具,提供了电脑上调试移动设备前端页面的能力。开发者通过setWebDebuggingAccess()接口开启Web组件前端页面调试能力,利用DevTools工具可以在电脑上调试移动设备上的前端网页。

  • 非root手机必须按照官网文档设置打开可调试接口
  • root手机可使用批处理命令一键赋能调试能力,见附件webDebug

使用devtools工具打开电脑浏览器调试,查看“Console”,没有报错日志,排查下一项。

查看“Elements”,发现财富页面顶部web加载的在线html页面,标签<div id="app"\>内容为空,资源没有请求到:

查看“Network”,操作步骤当前页面调试窗口切换到“Network”然后点一次刷新,对比这个页面在两个版本请求的资源,发现有两处差异,差异1:UA不同,差异2:异常的页面缺少msid资源请求:


分析差异

通过DevTools调试工具分析发现有两处差异,继续分析差异对应用的影响:

差异1:usage-agent不同,用正常显示的ua替换异常页面的ua,替换方法如下,在第4步处填入正常的ua,操作后异常页面仍然没有显示内容,证明跟ua没有关系,排除可疑:

差异2:异常的页面缺少msid资源请求,页面向服务器请求但是没有响应,怀疑请求被服务器拦截,需要重点排查,经确认是缺少msid导致。

问题根因

通过对比两个版本的差异点,找出异常页面缺少msid资源,由于增加了Release模式检测,然后导致monitor.auto.browser.min.js文件的路由被拦截,之前的beta和Release的逻辑没问题,新版本被新提交代码给覆盖,导致beta的赋值逻辑变了。

logo
HarmonyOS
子站问答
访问
宣传栏