提莫小王子
提莫小王子
  • 发布:2024-09-11 12:22
  • 更新:2025-11-25 15:54
  • 阅读:852

请问在 uniapp-x 的架构下 如何正确的编写 uts 插件?

分类:uni-app x

文档说的云里雾里的,模棱两可,完全不知所云。所以现在来社区问一下;目前使用 uniapp-x 发现了2处非常棘手的问题。我先套个盾,单反用 uniapp 做 APP(这里uniapp是统称,包括uniapp-x)的,说难听点都是为了节约用人成本的。要说特别定制化的东西花钱我可以理解。一些基础功能官方不给内置了,然后市场一搜全是付费的。没有条件用付费的,自己写,一看 uts 插件开发文档,写的云里雾里的。

目前有几个常见需求,官方来解答下,怎么去解决?

  1. aes 加解密问题(本地保存登录信息包含密码,uniapp-x 不是 cli 方式,不知道怎么导 npm 包,这个问题如何解决)
  2. 二维码生成问题(海报这些场景,第一版 app 使用的是 uniapp 因为可以用 npm 包,所以还是可以简单实现的)
  3. sqlite 数据库怎么实现(业务里有聊天能力,查询资料说 uniapp-x 不支持 plus 的 api,需要自己写,插件市场一搜排名前几的全是付费的,这个功能官方不内置作为付费合理吗?)

如何自行开发 uts 插件?

如上,1 2 问题 大不了 暂时不加密,二维码让后端返回,至少问题可以解决;请问 3 这个需求如何解决?

如下是 ai 给的 ios 原生代码,请问怎么转成 uts 的语法?

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];    
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myDatabase.sqlite"];    

// 打开数据库    
sqlite3 *db;    
if (sqlite3_open([path UTF8String], &db) == SQLITE_OK) {    
    // 数据库打开成功    
} else {    
    // 数据库打开失败    
}
2024-09-11 12:22 负责人:无 分享
已邀请:
DCloud_iOS_LZY

DCloud_iOS_LZY

针对转uts语法的问题,如果觉得转语法困难可以使用混编的方式来实现插件,混编从 HBuilderX 4.25版本开始支持,
参考文档:https://doc.dcloud.net.cn/uni-app-x/plugin/uts-plugin-hybrid.html

  • 晒网

    数据库官方有相关的内容不 怎么用 这个是主要的呀

    2024-09-16 09:55

2***@qq.com

2***@qq.com

针对第三点,题主解决问题了吗?

  • 提莫小王子 (作者)

    解决啥,跑路前用的都是 uniapp,没换 uniapp-x,uniapp-x 现在就是空中楼阁,官方想的挺好的,就提供个框框,其他都是全平台解决,那还要uniapp干嘛,直接招对应岗位的开发人员得了

    2025-12-04 13:55

  • 提莫小王子 (作者)

    uniapp 诞生目的 说难听点 说白了 就是干掉了原生的市场 包括 electron 啥的,当然不是说原生没市场,至少可以说被瓜分了一些,不过分。现在官方感觉就是手伸长了 忘记了客户为什么选他了 还以为自己能改变环境,没办法。我文章里也说了,特别定制的东西可以理解需要爆金币,sqlite这种基础的东西,官方不提供插件,全靠市场路人局提供,纯属搞笑,让我感觉,就像是一个UI组件库,就提供 按钮表单下拉,然后说不提供数据表格,一问就是说我们不做数据表格,现成数据表格库太多了,你自己选,怎么选我不管。给我整不会了,官方似乎忘了,如果你不支持数据表格,我为啥选你?按照UI组件库的逻辑,我要你个残废干嘛,我为啥不换更成熟的组件库?

    2025-12-04 14:00

  • 提莫小王子 (作者)

    uniapp-x 也不知道是 dcloud 官方那个领导一拍脑袋想出来的玩意,抄都抄不明白,国情都不一样就硬模仿,东施效颦。要不是 uniapp-x 背靠 unapp 这个项目,根本没人用,dcloud 不爱惜自己的羽毛就不爱惜吧,咱也不管不到。

    2025-12-04 14:03

DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

sqlite 数据库在不同系统上都具备,安卓 ios 和华为都有,具体的开放方案上,

可以自己写。要不是自行导入系统内置包来自行实现,也可使用各平台流行的三方包来实现,对外提供统一的接口。

可以用插件市场内容。插件市场有一些解决方案,有的是多平台都支持,有的是单平台支持,你可以合理筛选。

技术细节上,如上面同事回复,你可直接使用原生混编,在 uts 里引入 swfit 文件。可参考 UTS 插件介绍原生混编

要回复问题请先登录注册