插件cordova无法识别,缺少库?

时间:2014-10-21 19:24:01

标签: javascript android cordova cordova-plugins

我有一个关于cordova的问题。这是一个关于cordova安装,项目创建和插件添加的简单主题。实际上,在我尝试在项目中添加插件之前,我认为一切正常。在执行程序时无法识别与cordova插件相关的方法......我自己表达:

我已正确安装nodeJS,正确设置环境变量等... 然后键入以下命令安装cordova:npm install -g cordova 此刻一切都还好。

之后,我尝试创建一个新项目:例如cordova create Test com.example.test Test 目前,与9:37的教程视频here相比,我有:

Creating a new cordova project with name "Test" and id "com.example.text"
at location [...]"

但我没有视频的最后一行:

Downloading cordova library for www...
Downloading complete

所以这里已经有些奇怪......

我通过输入以下命令来指定一个android项目:

cordova platforms add android

然后,终端显示以下行:

Creating android project...
Creating Cordova project for the Android platform:
        Path: platforms\android
        Package: com.example.test
        Name: test
        Android target: android-19
Copying template files...
Project successfully created

但似乎在10:27的同一视频中,很多事情应该发生在我身上似乎没有发生......

尽管有这些元素,但该项目仍然“正确”创建但是: libs文件夹为空(我认为这是问题......)

好的,之后我尝试添加插件,输入:cordova plugin add org.apache.cordova.device-orientation以获取指南针插件。

正确修改AndroidManifest.xmlres\xml\config.xml以设置功能(在build.xml中)和权限(在AndroidManifest.xml中),然后我认为这不是我的问题。 ..

但是对于一个简单的代码,如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="msapplication-tap-highlight" content="no" />
        <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes.     See https://issues.apache.org/jira/browse/CB-4323 -->
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <title>Hello World</title>
    </head>
    <body>
        <div class="app">
            <h1>Apache Cordova</h1>
            <div id="deviceready" class="blink">
                <p class="event listening">Connecting to Device</p>
                <p class="event received">Device is Ready</p>
            </div>
        </div>

        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>

        <script>
            if(navigator.compass)
                alert("ok");
            else
                alert("not supported");
        </script>
    </body>
</html>

我收到警告说“不支持”(navigator.compass未定义)

似乎这个问题仍然存在于cordova的其他插件中;我不能使用他们的相关方法......除了一个:navigator.geolocation;我不知道为什么,但这是我使用它时唯一被认可的东西。

好吧,我不知道该怎么做,我已经看到了一些关于“jar文件丢失”的其他主题,特别是this one,但我不确定这是真正的问题。但如果它是我不明白将生成的jar文件放在项目中的位置......(??)

无论如何,如果你曾经遇到过这种情况,我真的很感激,因为我现在已经整整3天才能解决这个问题。

注意:这可能没有必要说明,但我尝试用javascript完全编码我的项目(生成一个适用于许多平台的应用程序,不仅仅是android [这里只是为了测试])。如果有权限添加或一些像这样的小东西没关系,但我更喜欢限制Android规范。

等待你的回答,谢谢大家

2 个答案:

答案 0 :(得分:0)

在这里遇到同样的问题,

我设法安装了cordova和所有这些。 但我的build.phonegap说它不包含任何插件。 此外,当我尝试键入navigator.c以获取navigator.camera。没有相机选项可供展示。

我的插件都没有用。

我有一个ondeviceready函数,什么也不起作用。

document.addEventListener('deviceready', test, false);
function test() {
    alert('hi');
}
当我下载,安装并打开我的应用程序时,我的Android手机上没有hi消息popsup。

答案 1 :(得分:0)

我想这是因为你的插件过早使用了。设备准备就绪时,您只能使用插件代码,因为js是动态加载的。

如果您这样做,它应该有效:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {  
  if(navigator.compass)
           alert("ok");
     else
          alert("not supported...");       
}