HarmonyOS 鸿蒙Next 鸿蒙ets项目如何引用crypto-js
HarmonyOS 鸿蒙Next 鸿蒙ets项目如何引用crypto-js
-
在
package.json
中加入依赖 -
在代码中引用,此时提示错误
-
可以编译通过并运行程序,但在调用时运行报错
请问应该如何解决这个问题?
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可以使用,参考链接:
我使用的是harmonyOS,这个api只存在于openHarmony上,
确定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的运行环境,我更倾向是编译器的机制问题,
在HarmonyOS鸿蒙Next中,若想在ets(Enhanced TypeScript)项目中引用crypto-js
库,你可以按照以下步骤操作:
-
安装crypto-js: 由于ets项目基于TypeScript,且运行在鸿蒙系统的应用框架内,你需要确保
crypto-js
库兼容该环境。通常,你可以通过npm或yarn来安装该库,但请注意鸿蒙开发环境的特殊性,可能需要手动将库文件引入项目中。在项目根目录下打开终端,执行以下命令(如果鸿蒙开发环境支持npm):
npm install crypto-js
或者,下载
crypto-js
的源码文件并手动添加到项目中。 -
引入库文件: 在ets项目的
.ets
或.ts
文件中,通过import
语句引入crypto-js
:import CryptoJS from 'crypto-js';
-
使用crypto-js: 引入后,你可以按照
crypto-js
的文档使用其提供的加密、解密等功能。
请注意,由于鸿蒙系统的封闭性和对安全性的高要求,某些加密操作可能受到系统限制。确保你的加密需求符合鸿蒙系统的安全规范。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,