拨打phonegap.js无效

时间:2012-02-20 08:01:03

标签: javascript ios api cordova include

单击我的按钮时,没有任何反应。

    <button onclick="captureVideo();">Capture Video</button>

我把phonegap-1.4.1.js放在WWW文件夹中。

我已将<script src="javascript/phonegap-1.4.1.js" type="text/javascript"></script>纳入我的头部。

我根据Phonegap API Docs的例子完成了所有支持功能。

<script>
        // Called when capture operation is finished
        //
        function captureSuccess(mediaFiles) {
            var i, len;
            for (i = 0, len = mediaFiles.length; i < len; i += 1) {
                uploadFile(mediaFiles[i]);
            }       
        }

        // Called if something bad happens.
        // 
        function captureError(error) {
            var msg = 'An error occurred during capture: ' + error.code;
            navigator.notification.alert(msg, null, 'Uh oh!');
        }

        // A button will call this function
        //
        function captureVideo() {
            // Launch device video recording application, 
            // allowing user to capture up to 2 video clips
            navigator.device.capture.captureVideo();
        }
        </script>

我对其他外部js的其他调用都可以正常工作。只是phonegap-1.4.1.js无法正常工作。我在这里缺少什么?

修改

当我将phonegap js内联粘贴时,我对这些功能的所有调用都运行良好。所以,我已经确定问题是它从未从外部加载过。 Diviceready警报会告诉我同样的事情。但它并没有让它加载。所以,问题仍然存在,我如何才能加载外部js?

3 个答案:

答案 0 :(得分:1)

你需要调用document.addEventListener ..以确保加载PhoneGap,在你的身体上调用init()方法onload

<body  onload="init()">

并将以下内容放在头标中

 <script type="text/javascript">
        var onDeviceReady = function() {
            alert("OnDeviceReady fired.");
        };

        function init() {
            document.addEventListener("deviceready", onDeviceReady, true);
        }
    </script>

答案 1 :(得分:1)

文件在这里:

  

我把phonegap-1.4.1.js放在WWW文件夹中。

但是你将它包含在不同的位置:

  

我已将<script src="javascript/phonegap-1.4.1.js" type="text/javascript"></script>纳入我的头部。

它没有加载,因为它希望在javascript目录中找到该文件,而你将它放在www文件夹中。在www文件夹中创建一个“javascript”目录,或从脚本标记中的src中删除“javascript”。

答案 2 :(得分:0)

您需要确保deviceready事件正在触发。只有在火灾发生后才能进行手机api通话

document.addEventListener("deviceready", function(){

});