cordova.plugims在deviceready上未定义

时间:2015-10-12 19:17:21

标签: cordova

我在Cordova应用程序中添加了“ de.appplant.cordova.plugin.emailcomposer.EmailComposer ”插件。我只是想尝试访问cordova.plugins in my deviceready to check if the plugin is installed properly。但是,获得Cordova undefined。另外,尝试使用window.plugin;这也是undefined。我在这里缺少什么?

我已通过命令行添加了该插件,并在我的config.xml中添加了以下代码:

<feature name="EmailComposer">
      <param name="android-package" value="de.appplant.cordova.plugin.emailcomposer.EmailComposer" />
</feature>

这是我的html文件的外观:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>

    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
    <title>email</title>

<script>

    function emailtest(){
        document.addEventListener('deviceready', function () {
            alert(cordova.plugins);
            alert(window.plugin);
        }, false);
    }

</script>

</head>
<body >
<input type="button" onclick="emailtest()">
</body>
</html>

1 个答案:

答案 0 :(得分:0)

@avi,
您的网页有很多错误。我把它清理干净了。

<!DOCTYPE html>
<head>
    <title>email</title>
    <script src="jquery-1.10.1.min.js"></script>
    <script src="jquery.mobile-1.4.2.min.js"></script>
    <script src="cordova.js"></script>
<script>
    var readyForEmailTest = false
    document.addEventListener('deviceready', function () {
        alert(cordova.plugins);
        alert(window.plugin);
        readyForEmailTest = true;
    }, false);

</script>
</head>
<body >
<!-- (...) -->
</body>
</html>
  • 网页中不需要W3指令。除了你之外,没有人会阅读页面内部。这意味着没有服务器会读取您的网页。
  • 从远程网站加载资产(JS文件,图像等)并不是一个好习惯。在设备上有自己的声明。
  • 您忘记了cordova.js文件。它需要列出以便工作。我忘了编译器是否添加了文件。
  • 在你做任何事之前,你需要等待deviceready事件发生。

以下链接可以为您提供帮助。

Boilerplates教程 你需要的最低限度。