`
nnwq
  • 浏览: 209215 次
社区版块
存档分类
最新评论

Chrome插件开发之manifest.json

 
阅读更多

 

广而告之:

Chrome插件之一键保存网页为PDF1.1发布

 

 

 

 

最近做“一键保存网页为PDF”过程中,对Chrome插件的开发也有些心得,在这里分享给大家。

在这里我将我用我插件作为例子给大家讲解,虽然我这篇文章是讲manifest.json文件,不过在这过程中会同时介绍一些相关的东西。

整个Chrome插件开发最核心的就是manifest.json,熟悉了它,其它的都很容易了。

首先看我的插件的manifest.json文件:

{
  
	"manifest_version": 2,
  
	"name": "保存网页为PDF",
  
	"version": "1.1.7.80",
  
	"description": "保存网页为PDF【作者:涂剑凯,邮箱:bdstjk@qq.com】",

	"icons":{"16":"Images/16.png","48":"Images/48.png","128":"Images/128.png"},

	"background": {
		"page": "background.html"
	},

	"options_page": "options.html",
  
	"browser_action": 
	{
    
		"default_icon": "Images/16.png",
    
		"name": "保存网页为PDF"
  
	},
  
	"permissions": [
		"tabs",
		"http://localhost:9240/",
		"activeTab",
		"notifications","storage","http://*/"
	],

	"update_url": "http://localhost:9240/SaveService/GetUpdateXML"
}

 

必须属性:name、version、manifest_version

1、name 顾名思义就是你的插件的名称;

2、version 指你的插件的版本号;

3、manifest_version 指定清单文件格式的版本,在Chrome18之后,应该都是2,所以这个值直接设定为2就OK了;

推荐属性:description、icons、default_locale 

1、description 插件描述,简单介绍插件用途;

2、icons 插件图标,需准备16*16(扩展信息栏)、48*48(扩展管理页面)、128*128(用在安装过程中)的三个图标文件,建议为PNG格式,因为PNG对透明的支持最好;

3、default_locale 国际化支持,支持何种语言的浏览器,虽然官方推荐,不过我没用;

background

这是一个比较重要的属性,如果你需要运行一些后台脚本,比如监听用户在扩展信息栏按下你的插件图标,或者你要监听用户新建tab页,这个时候你就需要有一个background的页面。background你可以指定一个HTML页面(如我的插件),也可以指定一个JS文件,如:

{
  "name": "My extension",
  ...
  "background": {
    "scripts": ["background.js"]
  },
  ...
}
View Code

需要注意两点:

1、是HTML不能写JS代码,JS代码需要写到JS文件中后引入;

2、不能使用jquery(没有详细测试,可能是我没用正确);

监听用户在扩展信息栏按下你的插件图标时,显示当前活动页的URL:

chrome.browserAction.onClicked.addListener(function (tab) {
alert(tab.url);
});
View Code

参见:https://developer.chrome.com/extensions/background_pages.html

options_page

options_page指定你的插件设置页面,这个看个人需求而定,可以不设置。

需要注意两点:

1、你需要将JS写到一个JS文件中后引入;

2、不能有HTML元素的内联事件(<button onclick="...">),你需要通过JS给HTML元素绑定事件如:

$(document).ready(function () {
    $("#btnOpenSetting").click(function () {
        OpenSetting();
    });
});
View Code

browser_action

browser_action可以设置扩展信息栏的图标、图标悬浮提示、点击图标是弹出窗口(我的插件不需要弹出窗口所以未设置);

给大家看一个完整例子:

{
  "name": "My extension",
  ...
  "browser_action": {
    "default_icon": {                    // optional
      "19": "images/icon19.png",           // optional
      "38": "images/icon38.png"            // optional
    },
    "default_title": "Google Mail",      // optional; shown in tooltip
    "default_popup": "popup.html"        // optional
  },
  ...
}
View Code

permissions

permissions对于manifest.json来说虽然不是必要属性,但是对于我们开发插件来说却是必要的manifest.json,我们总要向chrome申请点权限,才能完成我们的插件;

这里我就只介绍我的插件里面用到的权限(当然其实有点权限我最后也没用):

"tabs", 访问浏览器选项卡
"http://localhost:9240/", AJAX访问localhost:9240的权限
"activeTab", 获取当前活动选项卡
"notifications", 浏览器通知(基于HTML5的通知实现)
"storage", 存储,希望存储一些设置的话,就需要用到
"http://*/" 访问任意域名的权限

update_url

update_url指定自动更新地址,如果你是通过chrome官方发布插件,这个属性不需要设置;但如果跟我一样通过非官方发布,这个属性就很巴适了;你只需要第一次拖拽安装插件,以后都能自动更新了。这里给一个update_url需要返回的数据格式例子:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' />
  </app>
</gupdate>
View Code

manifest.json就介绍到这里。

 

最后给大家看一个小例子

make_page_red    

http://files.cnblogs.com/bdstjk/ChromeExtensions_make_page_red.zip

解压文件,使用chrome访问 chrome://extensions/,勾选开发者模式,点击加载正在开发的插件,选择解压目录即可。

版权所有:http://www.cnblogs.com/bdstjk/ 转载请保留文章出处。

参考:

http://kb.cnblogs.com/page/76134/

https://developer.chrome.com/extensions/api_index.html

https://developer.chrome.com/extensions/samples.html

1
1
分享到:
评论

相关推荐

    ChromeExtensionDocument:chrome插件中文开发文档.zip

    "ChromeExtensionDocument:chrome插件中文开发文档.zip"是一个包含详细中文指南的压缩包,旨在帮助开发者理解并创建自己的Chrome插件。 开发Chrome扩展首先需要了解manifest.json文件,这是每个扩展的核心配置文件...

    Chrome扩展插件开发Manifest V3案例:把某招聘网站上的招聘信息导出Excel

    一个典型的Chrome插件由以下几个部分组成:manifest.json文件(定义插件的行为和权限)、背景脚本(持续运行的JavaScript代码)、内容脚本(与网页交互的脚本)、浏览器动作或页面动作(用户界面按钮)以及可能的...

    chrome 插件开发各种功能demo

    1. **manifest.json**:每个Chrome插件的核心配置文件,它定义了插件的元数据,如名称、版本、权限等,以及插件包含的所有组件(如背景脚本、内容脚本、选项页面等)。例如,你可以看到如何在manifest.json中启用...

    Chrome插件开发3.0

    1. **Manifest文件**:每个Chrome插件都需要一个`manifest.json`文件,这是插件的配置文件,包含插件的基本信息、权限、运行环境等。在开发过程中,必须正确编写并理解此文件,以便插件能够正常工作。 2. **...

    chrome插件开发文档-详细pdf版.7z

    manifest.json是每个Chrome插件的核心,它包含了插件的元数据,如插件名称、版本、权限以及所需的脚本和文件。在这个文档中,你将学习如何编写有效的manifest文件,设置插件图标,声明所需权限,以及启用特定功能,...

    chrome插件开发 - tab页面切换插件

    Chrome插件开发是一个充满创新和实用性的领域,它允许开发者为全球最大的网络浏览器之一——Google Chrome,添加自定义功能和增强用户体验。在这个“chrome插件开发 - tab页面切换插件”项目中,我们关注的焦点是...

    谷歌浏览器插件开发代码demo | google-chrome-plugin-demo.zip

    Chrome插件通常由以下几个部分组成:manifest.json(扩展配置文件)、背景脚本(background script)、内容脚本(content script)、选项页面(options page)、弹出框(popup)以及可能的图像资源等。"full-chrome...

    浏览器 chrome 插件开发

    1. **Manifest文件**:每个Chrome插件都必须有一个`manifest.json`文件,它是插件的配置文件,包含了插件的基本信息,如名称、版本、权限、图标、内容脚本、背景脚本等。例如,要访问网页内容,你需要在`manifest....

    Chrome插件开发完整demo

    Chrome插件由几个关键组件组成:`manifest.json`(清单文件)、背景脚本、内容脚本、用户界面(如选项页面)以及可能的图标和HTML文件。`chrome-plugin-demo-master`很可能包含了这些组件,通过它们你可以了解各个...

    chrome插件API中文版

    1. **manifest.json**:每个Chrome插件都需要一个manifest文件,它是插件的配置文件,包含了插件的基本信息如版本号、权限、运行的脚本等。 2. **内容脚本**:内容脚本可以在网页上下文中运行,与网页DOM交互,但不...

    Chrome插件开发完整教程

    开发Chrome插件并不需要特定的项目结构或IDE,只需保证根目录下有一个`manifest.json`文件即可。通过Chrome浏览器的“更多工具” -&gt; “扩展程序”或直接访问`chrome://extensions/`,可以进行插件的管理和加载。...

    chrome插件开发

    manifest.json是每个Chrome插件的核心配置文件,它定义了插件的元数据、权限、所需脚本和文件。例如,"name"和"description"属性用于描述插件的名称和描述,"version"表示插件版本,"permissions"则列出插件需要的...

    chrome插件化起始页.zip

    这个压缩包“chrome插件化起始页.zip”很可能包含了一个开发完成的Chrome扩展程序,它利用了Vue3、TypeScript和typescript等现代前端技术。下面将详细介绍这些关键知识点。 **Vue3**: Vue3是Vue.js框架的最新版本...

    chrome插件开发文档

    综上所述,开发Chrome插件涉及到多方面的技术与知识,从理解manifest.json的配置,到掌握Chrome API的使用,再到优化用户体验,都需要开发者具备一定的Web开发技能和对Chrome生态的深入理解。通过阅读《chrome插件...

    (源码)基于V3框架的Chrome插件开发模板.zip

    # 基于V3框架的Chrome插件开发模板 ## 项目简介 本项目是一个基于V3框架的Chrome插件开发模板,旨在帮助开发者快速上手并创建自定义的Chrome插件。通过提供基础的框架和示例代码,开发者可以专注于插件功能的实现...

    manifest.json

    Chrome插件小demo,自动打印文字,实现第一个chrome插件开发demo

Global site tag (gtag.js) - Google Analytics