【问题标题】:PhoneGap error - "Uncaught ReferenceError: cordova is not defined"PhoneGap 错误 - “未捕获的 ReferenceError:cordova 未定义”
【发布时间】:2013-04-22 14:45:01
【问题描述】:

我正在尝试通过 PhoneGap 使用 Android 上的菜单按钮。问题是我无法使用它,因为日志上出现此错误:

“未捕获的 ReferenceError:cordova 未定义”。

这是来源:

<!DOCTYPE html>
<html>
    <head>
            <!--<script type="text/javascript" charset="utf-8" src="js/cordova-2.6.0.js"></script>-->
            <!--<script type="text/javascript" charset="utf-8" src="cordova-2.6.0.js"></script>-->
            <!--<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>-->
            <script type="text/javascript" charset="utf-8" src="cordova.js"></script>

            <script type="text/javascript">
                function onLoad() {
                    document.addEventListener("deviceready", function () {
                        document.addEventListener("menubutton", function(){
                            alert('Menu button pressed.');    
                        }, true);
                    }, false);
                }
            </script>

    </head>
    <body onload="onLoad()">
            <p>Hello world!</p>
        </body>
</html>

我认为问题在于cordova.js 的导入,所以我尝试使用所有已注释的选项。

我不知道有没有关系,但是每次我启动脚本时,控制台都会出现这个错误,并带有红色:

E/webview(21743): registerForStylusPenEvent onAttachedToWindow
E/webview(21743): registerForStylusPenEvent START
E/webview(21743): registerForStylusPenEvent END

如果有一些英语错误,我很抱歉,但我正在尝试不使用谷歌翻译。

谢谢。

【问题讨论】:

    标签: android cordova


    【解决方案1】:

    首先请检查您的cordova.js 的路径和文件名是否正确。然后去掉onLoad事件,在脚本文件中写入deviceready事件钩子,如下图:

    <!DOCTYPE html>
    <html>
      <head>
        <!--<script type="text/javascript" charset="utf-8" src="js/cordova-2.6.0.js"></script>-->
        <!--<script type="text/javascript" charset="utf-8" src="cordova-2.6.0.js"></script>-->
        <!--<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>-->
        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
        <script type="text/javascript">
          document.addEventListener("deviceready", function () {
            document.addEventListener("menubutton", function() {
              alert('Menu button pressed.');
            }, true);
          }, false);
        </script>
      </head>
      <body>
        <p>Hello world!</p>
      </body>
    </html>
    

    【讨论】:

    • 谢谢!这是一个愚蠢的错误。我看的地方说是cordova-x-x-x.js这个文件是自动添加的……你回答后,我把文件放到文件夹里就可以了。
    • @WhizKid 我正确添加了该 cordova.js 文件。但在那之后它就不起作用了
    • @DeepikaLalra 您可以将您的代码作为单独的问题发布并在此处发布链接吗?
    • @Whizkid747 它工作正常。错误是我没有正确注册 deviceready 事件。我在写 document.addEventListener("deviceready", onDeviceReady(), false);错误是我在回调函数之后附加了“()”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2013-10-27
    • 2016-04-04
    • 2020-02-02
    相关资源
    最近更新 更多