uni-app 游客模式下app获取ANDROID信息问题
uni-app 游客模式下app获取ANDROID信息问题
操作步骤:
- 第一次启动应用并选择游客模式进入页面,获取ANDROID
预期结果:
- 游客模式下app不获取获取ANDROID
实际结果:
- 游客模式下app不获取获取ANDROID
bug描述:
游客模式下app获取ANDROID ,用新创建的空项目(没有天任何SDK和业务代码)打包成apk,执行进入游客模式依旧获取安卓ID
| 信息项 | 内容 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.99 |
| 手机系统 | Android |
| 手机系统版本号 | Android 11 |
| 手机厂商 | 小米 |
| 手机机型 | 小米6 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |

更多关于uni-app 游客模式下app获取ANDROID信息问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
新创建的空壳项目游客模式也会获取安卓id
看堆栈是webview内核chromium获取行为 不属于应用主动获取的。其他获取行为需要提供完整堆栈
在 uni-app 中,如果你需要在游客模式下获取 Android 设备的信息,可以使用 uni-app 提供的 API 或通过原生插件来实现。以下是一些常见的获取 Android 设备信息的方式:
1. 使用 uni.getSystemInfoSync() 方法
uni-app 提供了 uni.getSystemInfoSync() 方法,可以获取设备的基本信息,包括 Android 设备的品牌、型号、系统版本等。
const systemInfo = uni.getSystemInfoSync();
console.log('设备品牌:', systemInfo.brand); // 例如:Xiaomi
console.log('设备型号:', systemInfo.model); // 例如:Mi 10
console.log('系统版本:', systemInfo.system); // 例如:Android 10
console.log('平台:', systemInfo.platform); // 例如:android
2. 使用 uni.getSystemInfo() 方法
uni.getSystemInfo() 是异步的版本,与 uni.getSystemInfoSync() 类似,但通过回调函数获取信息。
uni.getSystemInfo({
success: (res) => {
console.log('设备品牌:', res.brand);
console.log('设备型号:', res.model);
console.log('系统版本:', res.system);
console.log('平台:', res.platform);
}
});
3. 使用原生插件获取更多信息
如果需要获取更多的 Android 设备信息(如设备的唯一标识、IMEI 等),可以通过原生插件来实现。uni-app 支持通过原生插件扩展功能。
3.1 使用 uni-native.js 插件
uni-native.js 是一个常用的原生插件,可以通过它调用 Android 的原生 API。你可以在 uni-app 项目中使用 uni-native.js 插件来获取更多设备信息。
3.2 自定义原生插件
如果你需要获取非常特定的设备信息,可以自定义原生插件。具体步骤如下:
- 创建原生插件:在
Android Studio中创建一个原生插件,实现获取设备信息的功能。 - 集成插件:将插件集成到
uni-app项目中。 - 调用插件:在
uni-app中调用插件,获取设备信息。
4. 注意事项
- 权限问题:获取某些设备信息(如 IMEI、MAC 地址等)可能需要特定的权限。确保在
AndroidManifest.xml中声明了相应的权限。 - 隐私问题:获取设备信息时,需要注意用户隐私问题,确保符合相关法律法规。
示例代码
以下是一个简单的示例,展示如何在 uni-app 中获取 Android 设备的基本信息:
export default {
data() {
return {
deviceInfo: {}
};
},
onLoad() {
this.getDeviceInfo();
},
methods: {
getDeviceInfo() {
const systemInfo = uni.getSystemInfoSync();
this.deviceInfo = {
brand: systemInfo.brand,
model: systemInfo.model,
system: systemInfo.system,
platform: systemInfo.platform
};
console.log('设备信息:', this.deviceInfo);
}
}
};



