HarmonyOS namespace 的方法 可以用 现在AOP的方法 addbefore. replace之类的吗?

namespace的方法可以用现在AOP的方法 addbefore.replace之类的吗?对系统namespace下的API做AOP,需要对某些隐私API 的调用做监控,必要的时候 还需要拦截这些调用。

HarmonyOS
2024-08-27 10:18:11
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

可以对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()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
分享
微博
QQ
微信
回复
2024-08-27 18:48:04
相关问题
HarmonyOS aop namespace报错
641浏览 • 0回复 待解决
HarmonyOS 可以用仓颉开发HarmonyOS
943浏览 • 1回复 待解决
可以用Java来开发鸿蒙应用
385浏览 • 2回复 已解决
可以用JS来开发鸿蒙应用
387浏览 • 1回复 已解决
可以用仓颉来开发鸿蒙应用
361浏览 • 1回复 已解决
DevEco Studio 可以用 安卓手机调试
5902浏览 • 1回复 待解决
HarmonyOS 关于AOP具体使用方法
1310浏览 • 1回复 待解决
可以用JS UI组件来做进度展示
6586浏览 • 1回复 待解决
dev studio可以用C#或者C++开发?
4526浏览 • 1回复 待解决
HarmonyOS dataORM表字段可以用boolean
765浏览 • 1回复 待解决
c++侧可以直接调用tsstatic方法
3157浏览 • 1回复 待解决