chrome app开发学习笔记1

这篇博客详细记录了作者在学习Chrome App开发过程中的笔记,主要聚焦于manifest.json文件的重要性和基本结构。通过阅读,读者可以了解到Chrome App开发的基础知识和manifest.json配置的关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        昨天照着教程试着写第一个chrome app,下面记录和分享下一些小收获。(教程会在下面附注出来) 自学的时候,最让人不爽的是,照着教程一步一步来,结果却与教程差距甚大,还找不到原因。。。 一个简单的chrome app的demo的教程 我在重复它的过程时遇到两个问题。

首先就是manifest.json的问题,给出的代码是:

{
"name": "My First Extension",
"version": "1.0",
"description": "The first extension that I made.",
"browser_action": {
"default_icon": "icon.png",
"popup": "popup.html"
},
"permissions": [
"http://api.flickr.com/"
]
}

我们需要修改下,才能让我们的app正确的运行:

{
"name": "My First Extension",
"version": "1.0",
"manifest_version": 2,//必须添加
"description": "The first extension that I made.",

"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"//更改成default_popup
},

"permissions": [
"http://api.flickr.com/"
]
}

第二个,就是添加popup.html,同时也需要添加popup.js,popup.html代码如下:

<!doctype html>
	<html>
	  <head>
	    <title>Getting Started Extension's Popup</title>
	    <style>
	      body {
	        min-width: 357px;
	        overflow-x: hidden;
	      }
	
	      img {
	        margin: 5px;
	        border: 2px solid black;
	        vertical-align: middle;
	        width: 75px;
	        height: 75px;
	      }
	    </style>
	
	    <!--
	      - JavaScript and HTML must be in separate files: see our Content Security
 	      - Policy documentation[1] for details and explanation.
	      -
	      - [1]: http://developer.chrome.com/extensions/contentSecurityPolicy.html
	     -->
	    <script src="popup.js"></script>
	  </head>
	  <body>
	  </body>
	</html>

popup.js代码如下:

// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

/**
 * Global variable containing the query we'd like to pass to Flickr. In this
 * case, kittens!
 *
 * @type {string}
 */
var QUERY = 'kittens';

var kittenGenerator = {
  /**
   * Flickr URL that will give us lots and lots of whatever we're looking for.
   *
   * See http://www.flickr.com/services/api/flickr.photos.search.html for
   * details about the construction of this URL.
   *
   * @type {string}
   * @private
   */
  searchOnFlickr_: 'https://secure.flickr.com/services/rest/?' +
      'method=flickr.photos.search&' +
      'api_key=90485e931f687a9b9c2a66bf58a3861a&' +
      'text=' + encodeURIComponent(QUERY) + '&' +
      'safe_search=1&' +
      'content_type=1&' +
      'sort=interestingness-desc&' +
      'per_page=20',

  /**
   * Sends an XHR GET request to grab photos of lots and lots of kittens. The
   * XHR's 'onload' event is hooks up to the 'showPhotos_' method.
   *
   * @public
   */
  requestKittens: function() {
    var req = new XMLHttpRequest();
    req.open("GET", this.searchOnFlickr_, true);
    req.onload = this.showPhotos_.bind(this);
    req.send(null);
  },

  /**
   * Handle the 'onload' event of our kitten XHR request, generated in
   * 'requestKittens', by generating 'img' elements, and stuffing them into
   * the document for display.
   *
   * @param {ProgressEvent} e The XHR ProgressEvent.
   * @private
   */
  showPhotos_: function (e) {
    var kittens = e.target.responseXML.querySelectorAll('photo');
    for (var i = 0; i < kittens.length; i++) {
      var img = document.createElement('img');
      img.src = this.constructKittenURL_(kittens[i]);
      img.setAttribute('alt', kittens[i].getAttribute('title'));
      document.body.appendChild(img);
    }
  },

  /**
   * Given a photo, construct a URL using the method outlined at
   * http://www.flickr.com/services/api/misc.urlKittenl
   *
   * @param {DOMElement} A kitten.
   * @return {string} The kitten's URL.
   * @private
   */
  constructKittenURL_: function (photo) {
    return "http://farm" + photo.getAttribute("farm") +
        ".static.flickr.com/" + photo.getAttribute("server") +
        "/" + photo.getAttribute("id") +
        "_" + photo.getAttribute("secret") +
        "_s.jpg";
  }
};

// Run our kitten generation script as soon as the document's DOM is ready.
document.addEventListener('DOMContentLoaded', function () {
  kittenGenerator.requestKittens();
});

结果如下:



chrome app 开发文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值