dcloudio / uni-app

A cross-platform framework using Vue.js
https://uniapp.dcloud.io
Apache License 2.0
40.15k stars 3.64k forks source link

uniapp小程序sdk中使用uts插件包 #5082

Open hootigger opened 3 months ago

hootigger commented 3 months ago

如题, 请问uni小程序中只能使用原生语言插件吗?可以使用uts开发插件吗?由于是uniapp项目是打包成wgt了 ,uts插件是编译到对应平台比如ios是swift, 但是打包wgt并没有看到类似的framework产物. 现在是不支持吗?

真机wgt

<Weex>[warn]WXBridgeContext.mm:1323, jsLog: [JS Framework] 当前运行的基座不包含原生插件[UTS-Proxy],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座 __WARN

模拟器直接运行:

Error: undefined class: UTSSDKModulesxxxUtsIndexSwift, xxx-uts 插件不存在或者编译错误,请检查插件代码是否存在错误,MAC端请配置Xcode环境后重新真机运行或者重新打自定义基座,Windows端请重新打自定义基座。 __ERROR
bfc846958672 commented 2 months ago
  1. uni-app项目下需要放uts插件,并重新导出 wgt
  2. 原生SDK中需配置 uts插件,参考文档:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android.html#utsconfig
hootigger commented 2 months ago

谢谢回复, 我有几点疑问:

  1. uni-app项目下需要放uts插件,并重新导出 wgt

我参考 https://doc.dcloud.net.cn/uni-app-x/plugin/uts-plugin.html 中说 在uniapp项目(我是cli创建的带src的项目), 我在根路径(src同级), uni_modules 目录下Hbuilder 右键有新建uts插件, 创建后; 我在src/pages中一个页面去导入uts插件 并调用方法, 然后导出wgt 可以正常导出, 但是在自己app中运行wgt会报错. 已经是最新的4.24 uni小程序sdk.

  1. 原生SDK中需配置 uts插件,参考文档:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android.html#utsconfig

这条是指我要下载app离线SDK然后提取其中的 DCloudUTSFoundation ... 等几个上述文档提到的framework 并替换掉几个.a库; 然后和app中unisdk放到一起是吗?

因为我看了uni小程序sdk是没有uts相关库的; 但是app离线sdk中有 而且三方依赖和小程序sdk中的类似. 之前看官网文档看到了 小程序sdk是替代离线appsdk的(如果是原生app 嵌入uniapp项目的话)

hootigger commented 2 months ago

我 Hbuilder 发行 -> 原生App-制作应用wgt包 点击后在项目 unpackage/release/ID.wgt 文件; 发行 -> 原生App-本地打包 -> 生成本地app打包资源 才会生成 resources/uni_modules 有对应uts插件 (生成了kt和Swift代码) 你的文档是离线App文档, 我原生app是自己已经有的 用的uni小程序sdk, ios端只需要把wgt放入我之前的项目中, 用sdk安装到app沙盒中就可以启动了, 我现在按照你说的 根本弄不成. 而且文档上提到的 库 我根本在uni小程序SDK都找不到...

hootigger commented 2 months ago

https://nativesupport.dcloud.net.cn/UniMPDocs/SDKDownload/ios.html 用的这种方式集成的uniapp