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

Expo集成OneSignal时提示Property 'setAppId'不存在的问题求助

解决OneSignal setAppId类型错误的方案

遇到这个错误,核心原因是你安装的react-native-onesignal版本和文档里的API不匹配,或者类型定义未正确加载,按下面步骤排查:

  • 检查版本并匹配API
    打开项目根目录的package.json,查看react-native-onesignal的版本:

    • 如果是v4及以下版本:文档用的是v5+的API,你需要把代码里的OneSignal.setAppId("MyAppId")改成OneSignal.init("MyAppId")
    • 如果是v5及以上版本:继续下面的步骤
  • 修复类型定义或缓存问题

    1. 重新安装最新版依赖:
      npm install react-native-onesignal@latest
      # 或者用yarn
      yarn add react-native-onesignal@latest
      
    2. 清除Expo缓存并重启项目:
      expo r -c
      
    3. 如果用VSCode开发,重启TypeScript语言服务:按下Ctrl+Shift+P(Mac是Cmd+Shift+P),输入TypeScript: Restart TS Server回车
  • 额外注意
    Expo集成OneSignal不能直接用Expo Go,必须使用Expo Dev Client或者切换到裸Workflow,否则即使代码正确也无法正常运行通知功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:01:00