HarmonyOS 鸿蒙Next 鸿蒙ets项目如何引用crypto-js

HarmonyOS 鸿蒙Next 鸿蒙ets项目如何引用crypto-js

  1. package.json中加入依赖

  2. 在代码中引用,此时提示错误

  3. 可以编译通过并运行程序,但在调用时运行报错

请问应该如何解决这个问题?

15 回复

https://gitee.com/openharmony-sig/crypto-js

这里是crypto-js适配openharmony项目,可以直接将项目中crypto文件夹下的内容添加到项目里进行使用(最新的代码还未发布到npm,请直接下载源码使用)。

更多关于HarmonyOS 鸿蒙Next 鸿蒙ets项目如何引用crypto-js的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我是在harmonyOS使用,需要先转换成harmonyOS的lib,

可以自行转化,也可以参考该项目对原库crypto-js的修改方式,在自己项目里进行修改,实际上修改的东西并不多,主要是分为两部分,一部分对于原库获取安全随机字节依赖了node或浏览器的crypto库,这个在鸿蒙中不支持,没有这个库,所以替换了;另一部分对于不支持unescape()和escape(),进行了替换。

同样遇到类似的问题了, 怎么解决的呢

开发者您好,看下5楼回复哦,如有疑问可以随时发帖,感谢。

楼主您好,系统内置加密算法cipher API可以使用,参考链接:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-system-cipher.md

我使用的是harmonyOS,这个api只存在于openHarmony上,

eTS的话你要确定npm已经安装它了。比如

鸿蒙应用开发eTS (API8) Lottie动画开发 (huawei.com)

另外js那个是什么版本的?eTS的一样版本用不了???

确定npm已经安装,eTS和js使用的crypto-js版本都是4.1.1,但js的工程是正常运行的,eTS的工程运行时报错,

欢迎开发小伙伴们进来帮帮楼主

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

先说结论:应该解决不了!

你用的 crypto-js 是web端的加密库,它依赖于运行时环境。例如 unescape() ,它存在于 window 作用域下,而鸿蒙的运行时里面根本不存在window,自然也不会有 unescape 这种函数。

tip:unescape() 已经从 web 标准中删除了

我使用ets的工程是引用报错,但用js的工程引用是可用的,那么harmonyOS应该是具备crypto-js的运行环境,我更倾向是编译器的机制问题,

这里是crypto-js适配openharmony项目,可以直接将项目中crypto文件夹下的内容添加到项目里进行使用(最新的代码还未发布到npm,请直接下载源码使用)。

在HarmonyOS鸿蒙Next中,若想在ets(Enhanced TypeScript)项目中引用crypto-js库,你可以按照以下步骤操作:

  1. 安装crypto-js: 由于ets项目基于TypeScript,且运行在鸿蒙系统的应用框架内,你需要确保crypto-js库兼容该环境。通常,你可以通过npm或yarn来安装该库,但请注意鸿蒙开发环境的特殊性,可能需要手动将库文件引入项目中。

    在项目根目录下打开终端,执行以下命令(如果鸿蒙开发环境支持npm):

    npm install crypto-js
    

    或者,下载crypto-js的源码文件并手动添加到项目中。

  2. 引入库文件: 在ets项目的.ets.ts文件中,通过import语句引入crypto-js

    import CryptoJS from 'crypto-js';
    
  3. 使用crypto-js: 引入后,你可以按照crypto-js的文档使用其提供的加密、解密等功能。

请注意,由于鸿蒙系统的封闭性和对安全性的高要求,某些加密操作可能受到系统限制。确保你的加密需求符合鸿蒙系统的安全规范。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部