unibest框架搭建的uniapp项目,在app端需要接入本地打包的原生插件,该插件是由flutter框架开发并打包成aar文件的。
在接入插件时,app端一直提示:
插件放置的文件路径和package.json文件内容:
manifest.config.ts内容:
manifest.json显示:
初始化调用插件部分代码:
async init(token: string, wsUrl?: string): Promise<boolean> {
console.log('[FlutterModule] ========== 开始初始化 ==========')
console.log('[FlutterModule] 插件 ID:', FLUTTER_MODULE_ID)
if (this.status.value === FlutterModuleStatus.INITIALIZING) {
console.log('[FlutterModule] 正在初始化中,等待完成...')
return this.waitForInitialization()
}
if (this.status.value === FlutterModuleStatus.INITIALIZED && this.lastToken.value === token) {
console.log('[FlutterModule] 已初始化且 token 未变,跳过')
return true
}
if (!token || token.trim() === '') {
console.error('[FlutterModule] Token 为空,无法初始化')
this.status.value = FlutterModuleStatus.FAILED
return false
}
this.status.value = FlutterModuleStatus.INITIALIZING
const finalWsUrl = wsUrl || this.getWebSocketUrl()
console.log('[FlutterModule] Token:', token)
console.log('[FlutterModule] WebSocket URL:', finalWsUrl)
return new Promise((resolve) => {
console.log('[FlutterModule] 调用 plus.bridge.exec...')
const timeoutId = setTimeout(() => {
console.error('[FlutterModule] 初始化超时(10秒)')
this.status.value = FlutterModuleStatus.FAILED
resolve(false)
}, 10000)
try {
// ⭐ 关键:args 必须是数组格式
const args = [
token, // 第一个参数:token
finalWsUrl, // 第二个参数:wsUrl
]
plus.bridge.exec(
FLUTTER_MODULE_ID, // service: 插件类别名
METHODS.INIT, // action: 方法名称
args, // args: 参数列表(必须是数组)
(res: any) => { // success callback
clearTimeout(timeoutId)
console.log('[FlutterModule] ✅ 初始化成功', res)
this.status.value = FlutterModuleStatus.INITIALIZED
this.lastToken.value = token
this.lastWsUrl.value = finalWsUrl
resolve(true)
},
(err: any) => { // error callback
clearTimeout(timeoutId)
console.error('[FlutterModule] ❌ 初始化失败', err)
this.status.value = FlutterModuleStatus.FAILED
resolve(false)
},
)
}
catch (error) {
clearTimeout(timeoutId)
console.error('[FlutterModule] ❌ 调用异常', error)
this.status.value = FlutterModuleStatus.FAILED
resolve(false)
}
})
}
是什么原因导致?


