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

Image Image Image


更多关于uni-app 游客模式下app获取ANDROID信息问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复




更多关于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 自定义原生插件

如果你需要获取非常特定的设备信息,可以自定义原生插件。具体步骤如下:

  1. 创建原生插件:在 Android Studio 中创建一个原生插件,实现获取设备信息的功能。
  2. 集成插件:将插件集成到 uni-app 项目中。
  3. 调用插件:在 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);
    }
  }
};
回到顶部