ArkTS中怎么完全屏蔽具体实现

通过如下接口抽象的方式设计SDK,定义SdkApi接口,SDK内实现SdkApi接口,只提供SdkApi接口给调用者,能完全屏蔽具体实现,让调用者无法查看吗?

export interface SdkOptions { 
  // … 配置项 
} 
 
export interface SdkApi { 
  connect(options: SdkOptions): void; 
  doSomething(): Promise<ResultType>; 
  // … 更多的API方法 
} 
 
import { SdkApi, SdkOptions } from “./sdk-interfaces”; 
 
class SdkImplementation implements SdkApi { 
  constructor(private options: SdkOptions) {} 
  connect(options: SdkOptions): void { 
    // 实现细节 
  } 
  doSomething(): Promise<ResultType> { 
    // 实现细节 
  } 
  // … 更多的API方法实现 
} 
 
import { SdkOptions, SdkApi } from “./sdk-interfaces”; 
import { SdkImplementation } from “./sdk-internal”; 
 
export function createSdk(options: SdkOptions): SdkApi { 
  return new SdkImplementation(options); 
}

场景描述:将密钥和加密算法封装在SDK中,希望通过接口屏蔽具体实现,只暴漏接口给调用者,避免密钥和加密算法暴漏给调用者

HarmonyOS
2024-04-27 23:14:19
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
mzshj

建议通过构建HAR包,开启release编译、混淆选项实现。HAR的Ts和ets文件就会生成js和d.ts文件,调用点击函数时,会先跳转到该.d.ets声明文件.d.ts是声明文件,隐藏了实现细节(类似于java的接口实现)js是真实的实现类,这个是无法隐藏,用户还是能看到的

构建har 包:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/har-package-0000001774279570

混淆相关文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-build-obfuscation-0000001731754312

https://gitee.com/openharmony/arkcompiler_ets_frontend/blob/master/arkguard/README-cn.md

分享
微博
QQ
微信
回复
2024-04-28 17:37:04
相关问题
Arkts开发 api9 怎么实现扫码功能?
904浏览 • 1回复 待解决
实现开放式测试的具体流程
521浏览 • 1回复 待解决
postgresqlschema具体是干嘛用的?
2378浏览 • 1回复 待解决
ArkTs怎么实现扫一扫功能?
2675浏览 • 1回复 待解决
鸿蒙怎么实现AndroidGridView
7701浏览 • 5回复 待解决
鸿蒙怎么实现动画翻转效果
8400浏览 • 2回复 待解决
权限使用方式ACL使能具体指什么
153浏览 • 1回复 待解决
如何判断Web组件是否全屏
371浏览 • 1回复 待解决
如何设置全屏返回的动效
283浏览 • 1回复 待解决
如何屏蔽弹窗外的区域事件
357浏览 • 1回复 待解决