开发OneNav浏览器扩展:我的经验分享

开发OneNav浏览器扩展:我的经验分享

最近我们发布了OneNav浏览器扩展版本,这也是第二次重构后的版本,期间遇到了一些技术难点,不过最后得以解决,所以打算用这篇文章分享xiaoz在开发OneNav浏览器扩展中用到的技术和经验。

02d0d5634eaf4d33.png

关于OneNav

OneNav是一款开源免费的书签(导航)管理程序,由xiaoz使用使用PHP + SQLite 3开发,界面简洁,安装简单,使用方便。OneNav可帮助你你将浏览器书签集中式管理,解决跨设备、跨平台、跨浏览器之间同步和访问困难问题,做到一处部署,随处访问。

还不了解OneNav的朋友可以参考这篇文章: 一篇文章带你快速了解开源免费的书签(导航)管理程序OneNav

两次重构与技术选型

OneNav浏览器扩展是发布以来的第三个版本,期间经历了两次重构。

第一个版本

首次重构

第二个版本进行了重构,使用“Vue3 + vitesse-webext + Vant 4”这样的技术组合,实际上线后发现存在以下问题:

最后不得不放弃“vitesse-webext + Vant 4”这样的方案。

二次重构

第三个版本,也就是现在的版本,再次进行了重构,这次采用的技术方案是“Vue3 ++ Element Plus”,WXT是下一代Web扩展框架,优点在于他可以通过一套代码编译出适用于Chrome/Firefox/Safari浏览器的扩展。这一点特性显得尤为重要,不然每个浏览器都去单独开发和适配,工作量属实不小。

在使用 vitesse-webext 方案的时候遇到了Firefox编译问题,而在中编译上非常轻松,不同的浏览器都顺利通过编译。

56d3bd1f368a6ccb.png

WXT开发浏览器扩展的一些经验

在实际使用WXT开发过程中并不是那么顺利,期间也遇到了不少问题,不过最后得以解决,于是整理了下面的经验。

编译代码

WXT默认编译的是Chrome扩展,直接使用命令:进行编译,编译后的目录在 .output/chrome-mv3 ,如果需要编译Firefox扩展,只需要加上参数即可:

# WXT编译Firefox扩展
pnpm build --browser firefox --mv3

Firefox默认使用的版本,为了避免后续升级问题,我直接添加了参数来指定最新的版本。

同理,如果需要编译Edge扩展,使用下面的命令:

pnpm build --browser edge

本来xiaoz还打算支持Safari,奈何苹果过于封闭,没找到Safari安装第三方扩展的方法,导致无法调试,于是不得不放弃支持Safari浏览器。

WXT在Firefox中遇到的问题

在我编译Firefox扩展后,打算在Firefox下进行调试,发现Firefox无法安装第三方扩展,会提示“此附加组件无法安装,因为它未通过验证”,可以直接参考这篇文章《 Firefox提示“此附加组件无法安装,因为它未通过验证”解决办法 》进行解决。

Firefox浏览器扩展必须在 manifest.json 中指定ID,否则安装和上架的时候会提示ID不存在,导致无法安装。我找遍了WXT文档,并没有发现关于Firefox ID的指示,于是我是编译后手动修改 manifest.json ,添加了下面的内容来指定ID:

"applications": {"gecko": {"id": "oneNav@example.com"}}

之所以Firefox扩展需要ID,ChatGPT是这样解释的:

Chrome浏览器不需要这个ID,否则会出现警告提示(不影响扩展运行)!!!

上架浏览器扩展

目前xiaoz已将OneNav浏览器扩展分别上架到了 Google.com/detail/onenav/omlkjgkogkfpjbdigianpdbjncdchdco?utm_source=ext_app_menu" target="_blank"> Chrome WEB Store / Firefox ADD-ONS 以及Microsoft-Edge-Extensions,不过Microsoft-Edge-Extensions还在审核中,Chrome和Firefox已经上架。

Chrome/Edge/Firefox分别对应的开发者平台如下:

其中Chrome需要支付的一次性开发者费用,而Edge和Firefox则是免费的,不需要任何费用即可提交您的扩展。提交扩展时根据平台的规则指示操作即可,有以下几个地方需要注意:

给我的感受是Chrome平台最规范,最严格,每一个扩展权限开发者都必须做出明确的解释为什么要用到这个权限,而Edge和Firefox则要宽松很多。

辅助工具

开发过程中,xiaoz就用到了一个第三方辅助工具,是用来生成不同尺寸的扩展图标,地址是: Chrome Extension Icon Generator

结语

以上就是xiaoz在开发OneNav浏览器扩展的一些心得和经验分享,希望对各位开发者有所帮助。如果您打算支持多个浏览器,强烈推荐试一下这个下一代Web扩展框架,能提高不少效率。

另外我创建了一个浏览器扩展开发的交流群,有兴趣的朋友可以微信扫码加入。

a9baef7e39b3efd6.png


如何开发Chrome浏览器扩展程序

先进入chrome 网上应用店,进入方法有多种,可以直接在浏览器地址栏输入应用店的地址或者点击“设置”→“扩展程序”→“安装扩展程序”

Chrome扩展开发入门 2.怎样使用Chrome Extensions API

Google提供的Chrome Extensions API是开发Chrome扩展用到的最权威资料之一,里面详细介绍Chrome扩展所能够实现的各方面的功能和Chrome浏览器所提供的接口(比如怎么调用用户书签)。 使用步骤如下:1. 后台HTML里的JS在浏览器被打开时就开始执行了,当浏览器关闭时停止工作。 你可以在这里写一些代码监视浏览器动作(比如在监视到用户创建了一个新标签页时邪恶的把它关闭,可以做定时任务(setInterval等),可以添加一段音乐。 2. 用户点击扩展栏图标时可以弹出一个页面,当用户点击网页部分时这个页面就被关闭了。 3. 可以使用js获取用户当前网页的DOM数据,监听用户键盘、鼠标动作。 这些代码是一个独立的JS文件(而不是像后台、弹出窗等是一个HTML文件里的嵌入js代码),通过扩展配置注入到相应的网页。 4. 读取用户计算机数据(NPAPI Plugins)。 这个功能要用到dll(动态链接库)知识,可以启动用户电脑的程序,删除用户文件等功能。 相当于一个小Windows程序。 利用Chrome提供的方法可以让扩展的后台页面与你的dll通信。

如何开发360浏览器插件

1、我们先创建一个文件夹,名字随便取2、然后在该文件夹下,创建一个文本文件,命名为,其内容为{ manifest_version: 2, name: One-click Kittens, description: This extension demonstrates a browser action with kittens., version: 1.0, permissions: [], browser_action: { default_icon: , default_popup: }}3、然后在创建一个名为的文本文件,再找一张图片,名为作为插件的图标。 4、在里的内容就是我们点击插件后显示的 内容,我在文件里面的 代码是

Wow!Handsome!

,大家也可以自己编写。 接下来我们就要加载插件了。 5、打开360极速浏览器,在右上角点击有三道横杠,在菜单中选择工具>扩展程序或 管理扩展,这会打开扩展管理的页面6、选中 开发人员模式,再点击 加载已解压的扩展程序,在弹出的 窗口选择你的文件夹7、最后在右上角便会出现你的图标,点击它就会显示我们的内容了!

外链关键词:  重庆二手摩托车市场  人体摄影网站  男人美白最有效的方法  一键安装系统下载  少妇艺术照片图片  战前女神  湖南专升本公共数学真题  华夏信用卡服务电话 
本文地址: https://www.q16k.com/article/20fe8b484452d723fda3.html
站长导航

891858.com站长导航是业界领先的站长网址导航网站,收录站长资源、站长资讯、站长工具、源码下载等相关网站。

绝对领域

绝对领域(www.jdlingyu.com)是一个2.5次元图片分享平台

品牌街

国美(Gome.com.cn)品牌街直销数万种品牌商品,国美品牌直销开放平台。汇聚jackjones、only、nike、zara等名牌精品,提供100%品质保证的商品,优惠的价格,优质的售后服务。

鄂州人才网

鄂州人才招聘网鄂州生活网、鄂州热线、鄂州人才网、鄂州房产网致力于打造鄂州一站式生活服务平台!

斜杠青年工作室

斜杠青年工作室是一个手机赚钱评测网,专门为大家提供正规且免费的网络赚钱与手机赚钱软件,让大家在家就可以兼职赚钱,是广大手机赚钱人士值得收藏的网站。

【成都简兮商贸】

成都简兮商贸为您提供专业的宁植安品牌产品等服务,公司位于四川省,成都市,金牛区,欢迎来电咨询:13034272459。

91内衣网

该站点未添加描述description...

菲琪游戏

该站点未添加描述description...

紫天

该站点未添加描述description...

快捷指令库

快捷指令库(rcuts.com)专注分享苹果手机iOS快捷指令大全,提供实用的iPhone快捷指令下载与教程,快捷指令又名iOS捷径,是苹果为iPhone及iPad推出的一款效率工具。

【58软件园】

58软件园(www.58zulin.com)是专业的软件网,提供国内外、各行业优秀软件网站资源,旨在为用户提供软件网站分类目录网址检索、优秀软件网站网址目录参考、精品软件推广服务。

盈盈家亲

盈盈家亲,分享居家小窍门,让生活更美好。

中国工信新闻网

中国工信新闻网(www.cnii.com.cn)由工业和信息化部主管、工业和信息化部新闻宣传中心(人民邮电报社)主办,是入围国家网信办《互联网新闻信息稿源单位名单》的中央新闻网站,是拥有国务院新闻办授予新闻采编发布权的一类新闻网站。

厂商登录

该站点未添加描述description...

戏曲mp4下载

xiqu9为用户提供非常丰富的戏曲mp4,唱戏机视频,唱戏机戏曲的下载服务,同时还可以下载最新的安卓版手机软件和游戏,内容丰富多样,下载快速安全。

SXKG

QH88【qh13.com】XSKG-SXKG✅KếtQuảXổSốKiênGianghômnaytrựctiếplúc16h10-KQXSKG-XSKGIANG-XSKiênGiang✅XổSốKiếnThiếtKiênGiangthứ3HàngTuầnNhanhNhất,xsktkg,XSKTKG,SXKG,XSKIÊNGIANG,KQXSKIÊNGIANG,XổSốKiênGiang,Kếtquảxổsốkiêngiang

788g影院

788g影院为您提供最新『热映电影、热门电视剧、热播综艺、动漫视频』在线观看,每天第一时间更新,给您更好的视频观看体验,手机看片首选788g影院。