You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用或修改Expo开发者菜单的摇一摇触发方式?

解决Expo摇动触发开发者菜单冲突的方案

方案1:开发阶段(Expo GO环境)临时覆盖摇动监听

你可以在应用入口处直接覆盖Expo默认的摇动事件监听,代码如下:

import { DevSettings } from 'react-native';

// 禁用默认摇一摇触发开发者菜单的逻辑
if (__DEV__) {
  DevSettings.togglePerformanceMonitor = () => {};
  DevSettings.toggleInspector = () => {};
  // 如果你需要自定义摇动触发逻辑,可以配合第三方摇一摇检测库使用,检测到摇动后不再触发默认菜单
}

注意:该方法仅在开发模式下生效,生产环境__DEV__变量为false,这段代码会自动失效,不会影响生产包功能。

方案2:通过配置文件永久禁用摇动触发

在项目根目录的app.json/app.config.js中添加如下配置,直接关闭摇动唤出开发者菜单的能力:

{
  "expo": {
    "ios": {
      "infoPlist": {
        "EXDevMenuShakeGestureEnabled": false
      }
    },
    "android": {
      "manifest": {
        "meta-data": [
          {
            "name": "expo.modules.devmenu.shakeGestureEnabled",
            "value": "false"
          }
        ]
      }
    }
  }
}

修改配置后需要重新执行expo prebuild以及重新构建开发包/生产包,配置才会生效,该方法对开发构建包和生产包都有效。

方案3:自定义开发构建替代Expo GO

如果上述方案在Expo GO中不生效,是因为Expo GO本身的内置逻辑优先级高于项目配置,你可以使用Expo自定义开发构建解决:

  • 执行eas build --profile development --platform [ios/android]生成自定义开发包
  • 自定义开发包会完全遵循你在配置文件中的设置,不会出现内置摇动监听冲突的问题

内容的提问来源于stack exchange,提问作者hloth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:15:03