Page 424 - AngularJS权威教程
P. 424

404  第 31 章  构建 Angular Chrome 应用


                 {
                     "manifest_version": 2,
                     "name": "Presently",
                     "description": "A currently clone",
                     "version": "0.1",
                     "permissions": ["http://api.wunderground.com/api/"],
                     "background": {
                         "scripts": ["js/vendor/angular.min.js"]
                     },
                     "content_security_policy": "script-src 'self'; object-src 'self'",
                     "chrome_url_overrides": {
                         "newtab": "tab.html"
                     }
                 }
                 manifest.json中的键相对而言比较简单,并且它允许设置名称、manifest版本和应用版本,等
             等。为了让Chrome将应用作为newtab应用启动,在这里设置这个应用覆盖所有新标签页。


             31.5  tab.html

                 这个应用程序的主HTML文件就是tab.html文件。当我们在Chrome打开一个新标签页时就会
             加载这个文件。

                 我们将在这个tab.html文件内建立这个基本的Angular应用:

                 <!doctype html>
                 <html data-ng-app="myApp" data-ng-csp="">
                     <head>
                         <meta charset="UTF-8">
                         <title>Presently</title>
                         <link rel="stylesheet" href="css/bootstrap.min.css">
                         <link rel="stylesheet" href="css/main.css">
                     </head>
                     <body>
                         <div class="container">
                         </div>
                         <script src="./js/vendor/angular.min.js"></script>
                         <script src="./js/vendor/angular-route.min.js"></script>
                         <script src="./js/app.js"></script>
                     </body>
                 </html>

                 这是Angular应用程序非常基本的结构,看起来几乎与任何Angular应用相同,除了
             data-ng-csp=""之外。

                 这个ngCsp会启用内容安全策略(Content Security Policy,CSP)来支持我们的应用。由于
             Chrome应用会阻止浏览器使用eval或者function(string)生成的函数,而Angular要使用
             function(string)生成的函数来加速,ngCsp可以让Angular能够计算所有表达式的值。
                 然而,这个兼容模式出于考虑性能的成本,在执行操作时比较慢,但是在这个过程中它不会
             抛出任何安全隐患。

                 CSP还禁止使用JavaScript引入内联样式表规则,因此你需要手动引入angular-csp.css。
   419   420   421   422   423   424   425   426   427   428   429