如何对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
相关问题
如何异步方法进行/替换
306浏览 • 1回复 待解决
基于AOP代码,都有哪些场景?
262浏览 • 1回复 待解决
运行时AOPdemo测试
475浏览 • 1回复 待解决
ArkTSglobalThis无法使用该如何替换
837浏览 • 1回复 待解决
对象函数this如何指向外层
713浏览 • 1回复 待解决
如何在ArkTS代码执行HTML内JS函数
930浏览 • 1回复 待解决
K8s 无法删除 namespace 问题
1068浏览 • 1回复 待解决
ArkTS调用C++类成员函数
542浏览 • 1回复 待解决
Class Router和namespace router有什么区别
639浏览 • 1回复 待解决
如何实现LocalStorage实时监听?
48浏览 • 1回复 待解决