如何对namespace中的函数插桩或替换?

如何对namespace中的函数插桩或替换?


HarmonyOS
2024-05-23 22:10:20
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
roseprodigal

可以对

ts文件中的namespace中的函数进行插桩或替换。

注意:

由于arkts不支持将namespace作为对象使用(arkts-no-ns-as-obj),因此不支持使用提供的接口对arkts的namespace的函数进行插桩/替换的操作。

参考代码:

// AOPNamespace.ts 
import { util } from '@kit.ArkTS'; 
  
export namespace MySpace { 
  export function foo() { 
    console.log("execute foo"); 
  } 
} 
  
export function fun() { 
  util.Aspect.addBefore(MySpace, "foo", true, 
    () => {  // namespace的场景, isStatic参数必须是true 
      console.log("execute before"); 
    }); 
} 
  
// Index.ets 
import { fun, MySpace} from './AOPNamespace' 
  
MySpace.foo() 
fun() 
MySpace.foo()

运行结果:

已于2024-5-24 22:03:51修改
分享
微博
QQ
微信
回复
2024-05-24 21:59:24
相关问题
如何异步方法进行/替换
688浏览 • 1回复 待解决
HarmonyOS C++函数功能
13浏览 • 1回复 待解决
HarmonyOS 如何做行为统计
365浏览 • 1回复 待解决
基于AOP代码,都有哪些场景?
712浏览 • 1回复 待解决
运行时AOPdemo测试
999浏览 • 1回复 待解决
K8s 无法删除 namespace 问题
2140浏览 • 1回复 待解决
ArkTSglobalThis无法使用该如何替换
2357浏览 • 1回复 待解决
HarmonyOS 替换string所有双引号
326浏览 • 1回复 待解决
对象函数this如何指向外层
2032浏览 • 1回复 待解决
Class Router和namespace router有什么区别
1627浏览 • 1回复 待解决
HarmonyOS 如何在builder函数传入组件
374浏览 • 0回复 待解决