使用uni-app uts封装的插件打包标准包插件功能失效
使用uni-app uts封装的插件打包标准包插件功能失效
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | HBuilderX | |
HBuilderX | 4.15 | |
Android | 7.1.1 |
示例代码:
async printTicket(item) {
console.log("printTicketList", item.beginTime);
let beginTime = item.beginTime;
let date = new Date(beginTime);
console.log("类型0:",item.appointmentType);
let dayOfWeek = date.getDay();
let days = [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
];
console.log("类型1:",item.appointmentType);
let dayOfWeekStr = days[dayOfWeek];
console.log("类型2:",item.appointmentType);
console.log("getUsbList():",getUsbList());
let devices = getUsbList();
console.log("类型3:",item.appointmentType);
openPrinter(devices[0]);
console.log("类型4:",item.appointmentType);
let printArray = [];
console.log("类型5:",item.appointmentType);
}
export function getUsbList(): Array<any>{
const context = UTSAndroid.getAppContext();
let devicelList = UsbPrinter.GetUsbPathNames(context)
let list = Array<any>()
devicelList.forEach(element => {
console.log("usb:",element);
list.push(element)
});
return list
// return Array.fromNative(kotlinList)devicelList
}
操作步骤:
- 运行标准基座,log日志打印到 “类型2:",0” 断掉了,怀疑getUsbList()方法在标准基座失效
预期结果:
- getUsbList()方法可调用,uts文件getUsbList方法的log日志能打印 “console.log(“usb:”,element);”
实际结果:
- 运行标准基座,log日志打印到 “类型2:",0” 断掉了,怀疑getUsbList()方法在标准基座失效
bug描述:
- Android版本为:7.1.2
- 我使用uts封装的插件打包标准包前一段时间功能是可用的,但是现在功能失效了。
- 现在我在本地项目运行到真机使用标准基座功能也不能用,但是运行在自定义基座是可以
- 这是调用插件的方法,标准基座,log日志输出到console.log(“类型2:”,item.appointmentType);就停了,getUsbList()这个是调用uts里面的方法
- App下载地址
更多关于使用uni-app uts封装的插件打包标准包插件功能失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
提供一下可以复现问题的示例。或者app id 我看一下
更多关于使用uni-app uts封装的插件打包标准包插件功能失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
UNI6D37729
请问有什么解决方案了吗?
根据描述,问题可能出在UTS插件在标准基座中的兼容性上。以下是关键分析点:
-
标准基座与自定义基座的主要区别在于签名和插件集成方式。标准基座使用HBuilder默认签名,而自定义基座使用开发者自己的签名。
-
从日志中断在
getUsbList()
调用前,且自定义基座正常来看,可能是:
- USB权限在标准基座中未正确声明
- 插件依赖的native库未正确打包进标准基座
- Android 7.1的兼容性问题(但自定义基座正常可排除)
- 建议检查:
- AndroidManifest.xml中是否声明了USB设备权限:
<uses-feature android:name="android.hardware.usb.host"/>
<uses-permission android:name="android.permission.USB_PERMISSION"/>