uni-app 安卓13系统picker点击无法弹起

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app 安卓13系统picker点击无法弹起

开发环境 版本号 项目创建方式
Mac 11.7.7 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Mac

HBuilderX类型:正式

HBuilderX版本号:3.98

手机系统:Android

手机系统版本号:Android 13

手机厂商:小米

手机机型:Redmi Note12 Turbo

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX


示例代码:

<template>  
  <view>  
    <picker  
      mode="selector"  
      range-key="label"  
      :range="applyTypeList"  
      @change="pickerChange('a', 'b', 'applyTypeList', $event)"  
    >  
      <input v-model="formData.b" disabledColor="#F7F7F7" disabled placeholder="请选择" border="none"></input>  
    </picker>  
  </view>  
</template>  

<script>  
export default {  
  data() {  
    return {  
      applyTypeList: [  
        { label: 'A', value: 1 },  
        { label: 'B', value: 2 },  
        { label: 'C', value: 3 },  
        { label: 'D', value: 6 },  
        { label: 'E', value: 5 }  
      ],  
      formData: {  
        a: '',  
        b: '',  
      }  
    }  
  },  
  methdos: {  
    async pickerChange(label1, label2, source, e) {  
      this.formData[label1] = this[source][e.detail.value].value  
      this.formData[label2] = this[source][e.detail.value].label  
    }  
  }  
</script>

6 回复

使用3.99 alpha版本试下


使用了3.99.2023121601版本进行了尝试,安卓13系统还是无法弹出,安卓12可正常弹出

我这里使用 OPPO K9 Android13 测试是可以的,HBuilderX版本:3.99.2023121601-alpha。你可以测试下其他机型是否有问题

使用华为Meta30 鸿蒙4.0.0,HBX版本 3.99.2023121601-alpha,测试没问题,但小米机型就不行

同样近期发现picker再红米note13 miui 14上无法弹出。

uni-app 中,picker 组件在 Android 13 系统上点击无法弹起的问题,可能是由于系统兼容性或 uni-app 框架的某些限制导致的。以下是一些可能的解决方案和排查步骤:


1. 检查 uni-app 版本

确保你使用的是最新版本的 uni-app 框架。旧版本可能存在兼容性问题,更新到最新版本可能会解决该问题。

npm update @dcloudio/uni-app

2. 使用原生 picker 组件

如果 uni-apppicker 组件在 Android 13 上无法正常工作,可以尝试使用原生 picker 组件。例如,在 Android 平台上,可以通过 uni.chooseImageuni.showActionSheet 等原生 API 替代。


3. 检查权限问题

在 Android 13 上,某些权限可能需要动态申请。确保你的应用已经正确申请了相关权限,例如:

uni.authorize({
    scope: 'scope.record',
    success() {
        console.log('权限申请成功');
    },
    fail() {
        console.log('权限申请失败');
    }
});

4. 使用 input 组件替代

如果 picker 组件无法正常工作,可以尝试使用 input 组件,并通过 focusblur 事件模拟 picker 的弹起效果。

<input type="text" @focus="showPicker" />
methods: {
    showPicker() {
        uni.showActionSheet({
            itemList: ['选项1', '选项2', '选项3'],
            success: (res) => {
                console.log('用户选择了:' + res.tapIndex);
            }
        });
    }
}

5. 检查 Android 13 系统特性

Android 13 引入了一些新的系统特性和限制,可能会影响 picker 组件的正常使用。可以查阅 Android 13 官方文档 了解相关变化。


6. 提交 Issue

如果以上方法都无法解决问题,可以到 uni-app 官方 GitHub 仓库提交 Issue,详细描述问题并提供复现步骤,等待官方修复。

uni-app GitHub Issues


7. 使用第三方插件

如果 uni-apppicker 组件无法满足需求,可以尝试使用第三方插件,例如 vant-weappuView 中的 picker 组件。


8. 调试日志

uni-app 项目中开启调试日志,查看是否有相关错误信息。

uni.setEnableDebug({
    enableDebug: true
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!