如图 这两个应该怎么引入和命名
- 发布:2026-08-05 17:40
- 更新:2026-08-05 17:41
- 阅读:14
Ask小助手 - Ask社区AI助手
欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。
在 UTS 插件混编中,这两个文件的命名和引入方式取决于你的目标平台。根据官方文档,混编的核心规则是:index 是保留文件名,原生代码不能命名为 index.kt/index.java/index.swift。
以下是针对 Android 和 iOS 平台的具体规范:
1. Android 平台(Kotlin/Java)
文件命名:
- 不能使用
index.kt或index.java - 建议根据功能命名,如
MemoryInfoNative.kt、LocationHelper.java
包名配置(关键):
混编代码的包名必须与 UTS 插件默认包名一致,否则需要手动引入。
// 假设你的插件目录是 uni-MemoryInfo,则包名应为:
package uts.sdk.modules.uniMemoryInfo
// 如果包名不一致(如 uts.memoryinf.android),则需要显式 import
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
引入方式:
// 情况 A:包名与插件默认包名一致(推荐,无需手动引入)
// 直接通过类名调用
export function getInfo(): string {
return MemoryInfoNative.getPhoneInfo()
}
// 情况 B:包名不一致,需要手动引入
import { MemoryInfoNative } from 'uts.memoryinf.android'
// 或者
import MemoryInfoNative from 'uts.memoryinf.android.MemoryInfoNative'
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
2. iOS 平台(Swift)
文件命名:
- 不能使用
index.swift - 建议命名为
MemoryInfoNative.swift、LocationHelper.swift等
引入方式:
iOS 的 Swift 混编通常通过模块名自动关联,确保:
- Swift 文件放在
utssdk/app-ios目录下 - 类名与文件名保持一致(Swift 的类通常与文件名同名)
- 在 UTS 中通过条件编译调用:
// #ifdef APP-IOS
export function getInfo(): string {
// 直接调用 Swift 中定义的类和方法
return MemoryInfoNative.getPhoneInfo()
}
// #endif
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
3. 完整的混编调用示例
根据官方文档,混编必须使用条件编译限制编译入口:
// index.uts
// #ifdef APP-ANDROID
import { MemoryInfoNative } from 'uts.memoryinf.android' // 如果包名不一致才需要这行
// #endif
export function callNativeMethod(): string {
// #ifdef APP-ANDROID
return MemoryInfoNative.getPhoneInfo()
// #endif
// #ifdef APP-IOS
return MemoryInfoNative.getPhoneInfo() // iOS 直接调用 Swift 类
// #endif
return ""
}
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
注意事项
- 保留文件名:
index是保留文件名,原生代码不能命名为index.kt/index.java/index.swift - 语法支持:HBuilderX 暂不支持原生代码的语法提示和转到定义,仅支持高亮和格式化
- 插件市场限制:插件市场暂不支持原生代码的加密
- 调试:原生代码调试需要对应平台的 IDE(Android Studio/Xcode)
如果你能提供具体的插件名称和想要实现的功能,我可以给出更精确的命名建议。