【问题标题】:phonegap - navigator.connection.type not definedphonegap - navigator.connection.type 未定义
【发布时间】:2014-02-07 19:42:21
【问题描述】:

我正在尝试通过 phonegap/cordova API 检查已建立的网络连接,但是很遗憾,它无法正常工作。

我按照科尔多瓦文档中的说明添加了插件,phonegap local plugin list 给出了[phonegap] org.apache.cordova.network-information

但是,只需调用

document.addEventListener("deviceready", function () {
  alert(Object.keys(navigator.connection));
}, false);

我的手机 (Android 4.0.4) 上的结果总是返回 0 并在带有 Android 4.4.2 的模拟器上运行登录到未定义 navigator.connection 的 LogCat。事实上,在两台机器上alert(Object.keys(navigator)); 都不会显示connection 键。

有什么办法吗?

使用 Cordova 3.3.0 的 Phonegap

【问题讨论】:

  • 您是否检查过插件是否安装正确(例如检查 js 文件是否存在于platforms\android\assets\www\plugins\org.apache.cordova.network-information\www 中)我有时不得不卸载-重新安装一些插件
  • 嗯,它不在您指定的目录中,但肯定在root/pluginsroot/platforms/android/src/org/apache/cordova/networkinformation。重新安装也放在那里。那里没有修复。
  • 在你指定的路径中,有一个.java文件,不是js。在我指定的路径中,您应该看到(一旦项目建成)Connection.js 和 network.js 如果它们不存在,则您的项目已损坏(可能是 android.json 的问题)
  • 呃。是的,这似乎是对的。有什么想法可以“廉洁”吗?特别是你说“一旦项目建成”,我安装插件后是否必须重新构建项目?

标签: android networking cordova navigator


【解决方案1】:

当您安装插件时,它会将文件复制到 www/plugins 并更新 android.json

然后,当您构建项目时,构建将 java 复制到 platform/android/src/... 并将 js 文件复制到 platform\android\assets\www\plugins(并在 plugin.xml 中定义任何自定义)

我多次看到 android.json 没有正确更新并且 javascript 文件没有被复制。删除并重新安装插件为我解决了这个问题。

如果您没有对platforms/android 文件夹进行手动自定义,我认为清理项目的最简单方法是清空/plugins 文件夹和platforms 文件夹,然后重新安装您需要的所有插件。

【讨论】:

  • 对不起,我花了这么长时间,我不小心弄坏了我的项目,不得不重建直到现在。多亏了你,我才成功。 phonegap 的文档真的很烦人...:/
【解决方案2】:

我遇到了同样的问题,发现我必须运行“cordova build”,然后状态才能正确返回。

注意 当我运行 cordova build 时,它似乎会占用我的 ~/app/www 目录中的所有内容并 overried app/platforms/android/assets/www/

中的所有内容

我的“安装过程”如下:

cordova create app com.app "App"
cd app
cordova platform add android
cordova plugin add org.apache.cordova.network-information
cordova plugin add org.apache.cordova.camera
cordova plugin add org.apache.cordova.geolocation
cordova build

然后我可以在 app/www 中进行代码更改,如果满意,可以使用“cordova build”“部署”它(这似乎总是将文件复制到 app/platforms/android/assets/www/。

如果我添加另一个插件使用:(例如)

cordova plugin add org.apache.cordova.file

那么我需要运行

cordova build

让它工作。

希望对你有帮助

(我使用的是cordova 3.3.1-0.1.2)

【讨论】:

  • 您不应更改平台文件夹内 www 文件夹中的代码。您应该直接在根 www 文件夹中更新。如果您需要某些平台的特定代码,可以使用合并文件夹。
猜你喜欢
  • 2023-03-14
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 2016-05-18
相关资源
最近更新 更多