首先你的询问sdk商家给的aar包是不是支持uniapp
如果他写的方法里面使用了uniapp的 @UniJSMethod(uiThread = true) 里面暴露的方法如 @UniJSMethod(uiThread = true) public void getCode() { } 那么这个aar的包只需要放在nativeplugins建立文件夹放在android里,然后package.json配置好就可以使用,如图

然后在自定义基座里打包,在页面里使用下面代码,需要根据你的上面图片的name里的名称填写,然后使用对应的里面的方法。
ini
`
const ble = uni.requireNativePlugin('ScanModule');
const init = () => {
ble.init({}, result => {
const msg = JSON.stringify(result);
msgs.value = msg
console.log(msg);
});
}
--------------------------------------分割线----------------------------------------
然后第二种方法,就是aar的包厂家给的aar是原声的没有暴露,那么你就有两种方法解决,
一种你使用android studio,在开发一个使用@UniJSMethod(uiThread = true)然后引用你需要的api方法的把厂家给的aar里的方法在暴露出去,然后按照👆上面配置就可以使用。。。。。。这种我研究了一下,但我kotlin和android开发水平不行搞了三天成功了一半。
然后我就用了uniapp的uts方法成功了。下面是教程 在uni_modules里面新建uni_modules插件,选择uts插件(名字你随便起) 把厂家给的aar文件放到libs里面 如图(我的是三个)

然后重点来了! 查看api文档,看看你需要的api文档,然后他的方法来自哪个类
找不到类的找厂家给的demo或者aar(我记得好像可以(用android studio打开解压的aar))全局搜索api查看类, 然后在index.uts里面,引入他,在注入uts的实例
ini
import ReaderCtrlManager from "com.olc.reader.ReaderCtrlManager"
const context = UTSAndroid.getAppContext()
const readerCtrlManager = ReaderCtrlManager.getInstance(context);
然后下面就可以使用ReaderCtrlManager里面的方法了, 注意有的aar文件他的实例他的返回方法是类下面的方法,但uts没有这个方法,就只能引入他的方法
import Stub from 'com.olc.reader.service.IInitCallback.Stub';
然后创建一个回调扩展这个方法
scala
class initCallback extends Stub {
constructor() {
super();
}
override result(success : boolean) : void {
console.log(success);
}
然后就封装个方法,里面可以直接使用这个方法
javascript
export function ContinueInventoryR2000(options : MyApiStatus) {
readerCtrlManager.InitUHF(new initCallback(), true)
}
如果触发api会调用initCallback里的方法,那么上面的 override result()会接收到消息,然后返回信息的方法就在InitUHF对应的initCallback方法里面,比如上面的result里面就可以这样写
arduino
override result(success : boolean) : void {
const res : MyApiResult = {
type: 1,
code: true,
msg: success
};
}
然后页面里就这样接收
javascript
import { ContinueInventoryR2000 } from '@/uni_modules/rfid-plugin';
const huoqu = () => {
ContinueInventoryR2000({
result: (res) => {
console.log(res);
}
})
}
这样就可以在页面里面拿到sdk的api对应触发的返回值了,如果是每触发就返回一次可以在方法上加上 @UTSJS.keepAlive
完结!!!!