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

Cordova OSC插件报错:Uncaught ReferenceError: OSC未定义

Cordova中cordova-plugin-osc插件“OSC is not defined”问题解决方法

核心原因

Cordova的原生插件API必须在deviceready事件触发后才能调用——插件是原生代码与Web层的桥接,需要等Cordova完成初始化,才会把OSC对象注入到全局作用域里。你直接在页面加载时调用new OSC(),此时插件还没初始化,自然会报未定义错误。

具体解决步骤

  • 等待deviceready事件触发后再调用OSC API
    把你的OSC初始化代码放在事件回调里:

    document.addEventListener("deviceready", onDeviceReady, false);
    
    function onDeviceReady() {
        // 这里才是调用插件的正确时机
        var port = 8000;
        var osc = new OSC();
        // 后续的OSC配置、发送逻辑都写在这里
        osc.open({ udp: { port: port } });
    }
    
  • 确认插件正确安装并构建项目

    1. 运行cordova plugin list,检查输出里有没有cordova-plugin-osc
    2. 如果没有,重新安装插件:
      cordova plugin remove cordova-plugin-osc
      cordova plugin add cordova-plugin-osc
      
    3. 安装完成后必须重新构建项目:cordova build,再启动模拟器或真机
  • 移除手动复制的OSC.js文件
    插件的JS文件是Cordova自动注入到WebView的,你手动复制到/www目录并引入会导致冲突,直接删除这个文件即可。

  • 不要用require('OSC')导入
    Cordova插件不是CommonJS模块,不需要用require导入,deviceready触发后全局会自动存在OSC对象。

调试技巧

  • 在onDeviceReady里打印console.log(window.OSC),确认对象是否存在
  • 如果还是不行,检查项目根目录的config.xml,确认里面有<plugin name="cordova-plugin-osc" ... />的配置项
  • 优先用真机测试,部分模拟器对Cordova插件的兼容性不如真机

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:57:15