uni-app 自定义基座真机触感(短振动)有效,打包成正式包后触感(短振动)不生效
uni-app 自定义基座真机触感(短振动)有效,打包成正式包后触感(短振动)不生效
操作步骤:
- 打包正式包后触感(短振动)不生效
预期结果:
- 打包正式包后触感(短振动)生效
实际结果:
- 打包正式包后触感(短振动)不生效
bug描述:
- 使用uni.vibrateShort(),自定义基座真机触感(短振动)有效,打包成正式包后触感(短振动)不生效,编译的版本是3.8.12,targetSdkVersion=30
信息类别 | 信息内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | 11 |
手机系统 | Android |
手机系统版本 | Android 11 |
手机厂商 | 小米 |
手机机型 | 红米k40 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | CLI |
CLI版本号 | 3.8.12 |
更多关于uni-app 自定义基座真机触感(短振动)有效,打包成正式包后触感(短振动)不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
请检查是否添加<uses-permission android:name="android.permission.VIBRATE"/>权限
更多关于uni-app 自定义基座真机触感(短振动)有效,打包成正式包后触感(短振动)不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,自定义基座和正式包的行为可能会有所不同,尤其是在涉及到系统 API 调用时,比如触感反馈(短振动)。以下是一些可能的原因和解决方案:
1. 权限问题
- 自定义基座:在开发阶段,uni-app 可能会自动处理一些权限问题,或者你的设备已经授予了相关权限。
- 正式包:正式包可能需要显式声明和请求振动权限。
解决方案:
在 manifest.json
中确保已经声明了振动权限:
{
"app-plus": {
"permissions": [
"android.permission.VIBRATE"
]
}
}
2. API 调用方式
- 自定义基座:在开发阶段,uni-app 可能会使用一些模拟或调试模式来调用系统 API。
- 正式包:正式包中可能会直接调用系统 API,如果调用方式不正确,可能会导致功能失效。
解决方案:
确保你在代码中正确使用了 uni.vibrateShort
方法:
uni.vibrateShort({
success: function () {
console.log('振动成功');
},
fail: function (err) {
console.log('振动失败', err);
}
});
3. 设备兼容性
- 自定义基座:在开发阶段,你可能在特定设备上测试,该设备支持振动功能。
- 正式包:正式包可能会运行在不支持振动的设备上,或者设备的振动功能被禁用。
解决方案: 在调用振动功能之前,检查设备是否支持振动:
uni.getSystemInfo({
success: function (res) {
if (res.platform === 'android' && res.vibrateSupported) {
uni.vibrateShort();
} else {
console.log('设备不支持振动');
}
}
});