【问题标题】:Cordova javascript doesn't work on emulatorCordova javascript 在模拟器上不起作用
【发布时间】:2017-03-14 00:52:21
【问题描述】:

我正在尝试使用 Cordova 为 android 构建一个 AngularJS 待办事项列表应用程序。如果我在浏览器中打开页面,页面加载正常,但除了我放在全局范围内的 alert() 之外,我无法在模拟器中运行任何脚本。这是我的 index.html 页面的代码......

<html>
    <head>

        <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
        <meta name="format-detection" content="telephone=no">
        <meta name="msapplication-tap-highlight" content="no">
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
        <link rel="manifest" href="/manifest.json">
        <link rel="stylesheet" type="text/css" href="css/index.css">

        <title>To-do list</title>
    </head>
    <body>
        <div class="app" ng-controller="ToDoListController">
            <h1>Things to do.</h1>
            <ul>
                <li ng-repeat="item in list" ng-bind="item"></li>
            </ul>


        </div>
        <script type="text/javascript" src="../node_modules/jquery/dist/jquery.min.js"></script>
        <script type="text/javascript" src="../node_modules/angular/angular.min.js"></script>
        <script type="text/javascript" src="../platforms/android/platform_www/cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
    </body>
</html>

对于 index.js 页面:

$(document).ready(function(){
    document.addEventListener('deviceready', function(){

    });
    angular.module('ToDo',[])
        .controller('ToDoListController',['$scope',function($scope){
            $scope.list = ["FOO","BAR"];
        }]);
    angular.bootstrap(document,['ToDo']);
    $('ul').append('<li>Item appended</li>');
});

正如我所说,如果我在 index.js 的全局部分中放置一个 alert(),它会触发,但不会触发其他任何东西。无论是在 $(document).ready() 内部还是外部,angular bootsrap 和 jquery append 函数都不会执行。在浏览器中一切正常。任何帮助表示赞赏。

【问题讨论】:

  • 您需要将要获取的所有内容都放在www 目录的本地。您在node_modules 中的文件不会被复制,并且会在您的应用程序中丢失。因此,您的问题的一部分。另一个问题是您应该只使用src="cordova.js" 获取cordova.js;构建应用程序时将提供相应的文件。
  • 做到了。非常感谢!

标签: javascript android jquery angularjs cordova


【解决方案1】:

通过 Kerri Shotts,在上述评论中:

您需要将要获取的所有内容都放在 www 目录的本地。您在 node_modules 中的文件不会被复制,并且会在您的应用程序中丢失。因此,您的问题的一部分。另一个问题是你应该只使用 src="cordova.js"; 获取cordova.js。构建应用程序时将提供相应的文件。

这行得通。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-12
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多