Phonegap/Cordova - 套接字插件最终得到: undefined is not a function in cordova.js

Posted

技术标签:

【中文标题】Phonegap/Cordova - 套接字插件最终得到: undefined is not a function in cordova.js【英文标题】:Phonegap/Cordova - Socket plugins end up with: undefined is not a function in cordova.js 【发布时间】:2015-01-10 23:03:09 【问题描述】:

我已为套接字添加了这个 phonegap/cordova 插件 (android),但无法正常工作。 https://github.com/blocshop/sockets-for-cordova/tree/version1.1

我收到日志消息“debug 1”和“debug2”。所以创建 socketHandle 对象是可行的。但它在 socketHandle.open 上失败了。控制台说:

控制台日志

file:///android_asset/www/cordova.js:第 927 行:未捕获的 TypeError: undefined 不是函数

JS 代码

    console.log("debug 1");

    var socketHandle = new Socket();

    console.log("debug 2");

    socketHandle.open(
      "192.168.1.15",
      51213,
      function() 
        alert("success");
        // invoked after successful opening of socket
      ,
      function(errorMessage) 
        alert("failed");
        // invoked after unsuccessful opening of socket
      );

    console.log("debug 3");

cordova.js 第 927 行(在 androidExec 函数内):

var messages = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson);

我尝试了其他套接字插件,但最终遇到了同样的问题。希望有人可以帮助我或指出正确的方向。

【问题讨论】:

您是否尝试为 socketHandle 绑定 onDataonErroronClose在你打电话之前 open? 是的,我试过了。但这并不能解决问题。 【参考方案1】:

似乎 phonegap 没有以正确的顺序加载 js 包含。我已将 cordova.js 的包含放在我的 index.html 的 head 部分,它现在可以工作了。真奇怪

【讨论】:

以上是关于Phonegap/Cordova - 套接字插件最终得到: undefined is not a function in cordova.js的主要内容,如果未能解决你的问题,请参考以下文章

适用于 iOS 的 Phonegap/Cordova 日历插件无响应

Phonegap (Cordova) 2.7.0 + Mapkit 插件 + 入门

Phonegap Cordova 插件在构建时删除

使用 Phonegap/Cordova 相机插件从相机或图库中选择照片

使用外部 Java 插件在 PhoneGap/Cordova 中捕获音频/视频

Phonegap/cordova 社交分享插件,重复推文问题