一、问题现象
一次开启混淆之后打包运行 APP 发现,有部分参数无法获取,但打印 object 对象该参数确实存在于 object 中。
function fun(obj: object) {
let resultCode:string = obj["resultcode"]
//.......
}
二、问题原因
拆包鸿蒙APP之后发现开启混淆之后字符串 resultcode 被 IDE 混淆了。经过测试发现将字符串修改为驼峰命名法之后开启混淆不会出现该问题。
三、解决方案
a)规范代码命名方式, object 中的属性一律使用驼峰命名法。
b)属性名单独使用字符串保存之后再使用,不直接在中括号中使用硬代码。(见示例)
示例:
class Constant{
public static readonly RESULT_CODE:string = "resultcode"
}
function fun(obj: object) {
let resultCode:string = obj[Constant.RESULT_CODE]
//.......
}