首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Svelte开发Chrome Extension

使用Svelte开发Chrome Extension

作者头像
程序猿川子
发布于 2022-05-28 03:27:37
发布于 2022-05-28 03:27:37
93200
代码可运行
举报
运行总次数:0
代码可运行

一、背景

起因 最近Chrome浏览器升级到96大版本后,二维码入口从地址栏移动至二级菜单。这对H5前端开发来说不太友好,每次需要页面二维码时都需要多点两下(* ̄︿ ̄)。

因此萌生了开发一个二维码Chrome Extension的想法(@ ̄ー ̄@)。

经过多方技术选型(React、原生、Vue、Svelte等),最终选择Svelte,原因是

  • 语法简单,心智负担小
  • 运行时代码少,打包体积小
  • 响应式

d=====( ̄▽ ̄*),接下来就开始Svelte × Chrome Extension之旅。

二、创建&开发

2.1 项目创建

2.1.1 项目初始化

使用Svelte Kit新建项目npm`` init svelte@next qrcode-extension ,目录结构如下:

  • src:源文件目录
    • lib:组件库等
    • routes:约定式路由文件
    • app.html:入口模板文件
  • static:静态文件目录
  • svelte.config.js:svelte配置

初始化项目之后可以直接npm`` run dev 启动。

2.1.2 支持插件开发

  1. manifest文件

Extensions are built on web technologies such as HTML, JavaScript, and CSS.

—— Chrome开发文档

  1. Chrome插件本质上是以manifest.json为入口规定的一系列前端资源集合,基于Chrome浏览器提供的API,实现各种功能。

因此在项目的静态资源文件目录中添加manifest.json文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "QrCode",
  "description": "A simple qrcode extension powered by Svelte",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": ["tabs", "downloads"],
  "action": {
    "default_popup": "index.html"
  },
  "icons": {
    "16": "/images/qrcode-16.png",
    "32": "/images/qrcode-32.png",
    "48": "/images/qrcode-48.png",
    "128": "/images/qrcode-128.png"
  }
}
复制代码

几个比较重要的字段:

MV3文件格式参考

  • manifest_version:manifest版本,之前为Manifest V2(MV2),Chrome推荐使用Manifest V3(MV3)
  • permissions:扩展要使用的浏览器权限,大部分Chrome扩展API均有权限依赖
  • action:定义插件操作行为对应的页面
    • default_popup:点击插件图标时的页面
  • icons:插件图标
  1. 添加chrome类型定义
  2. 安装@types/chrome到devDependencies,并在tsconfig.json#compilerOptions#types中添加chrome类型。

2.2 功能开发

2.2.1 需求拆分

  1. 参考Chrome浏览器二维码功能:

2.2.2 链接展示

  1. 需要获取Chrome浏览器当前打开的tab,查阅开发文档可知对应API为chrome.tabs,并在manifest.json#permissions添加tabs权限声明。

在首页加载时,获取当前tab的url,url展示到输入框,并作为二维码组件的输入属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
async function getCurrentTab() {
  if (typeof chrome === 'undefined' || typeof chrome.tabs === 'undefined') {
    return { url: '' };
  }
  let queryOptions = { active: true, currentWindow: true };
  let [tab] = await chrome.tabs.query(queryOptions);
  return tab;
}

import { onMount } from 'svelte';

let url = '';
// get current tab's url
onMount(() => {
  (async () => {
    const tab = await getCurrentTab();
    url = tab.url || '';
  })();
});
复制代码

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
有“贝”而“莱” 强势围观 | 贝加莱X20在制氧厂空气压缩机上的应用 020
随着生产车间自动化和过程自动化中分散化结构的迅速增长,现场总线系统的应用日益普遍。其原因之一是:现场总线系统实现了数字和模拟输入/输出模块,智能信号装置和过程控制装置与可编程逻辑控制器PLC和PC之间的数据传输,把I/O通道分散到实际需要的现场设备附近,使安装和布线的费用减少其二原因是:标准化的现场总线具有开放的通信接口,允许选用不同制造商生产的I/O分散设备。我公司制氧车间空气压缩机采用贝加莱X20PCC控制系统,结合其现场实际情况对本套系统进行概述。
剑指工控
2021/11/05
5750
网红PLC---X20CP1382的自我修养
X20CP1382属于贝加莱紧凑型Compact CPU系列,从2016年一出世就自带“网红”气质。作为贝加莱高性价比的产品之一,X20CP1382完美结合了PLC通用控制平台和运动控制功能,配合贝加莱通讯高度开放的特点,成为市场上少见的没有短板的全能产品。
剑指工控
2021/11/09
1.4K0
有“贝”而“莱” 强势围观 | 使用纯软仿真实现X20对交通灯的控制 025
如果你没有任何硬件,你也可以编写、调试X20软件,实现大量的小型工业对象的控制(例如交通灯、液位混合,机械手控制等),也可以实现过程自动化工厂、柔性制造生产线等稍大工业场景的控制。脱离硬件进行PAC的学习,大大提高教学实训的便捷性,可以在任何时间,任何地点,只需要电脑就可以实现Auto Studio和X20的学习。
剑指工控
2021/11/05
9300
自动化早已不是那个自动化
随着工业互联网的热炒,使得自动化在其中扮演了一个越发有意思的角色,一些缺乏对制造现场了解的人总是会把PLC理解为就是做逻辑控制的,而且提起现场总线总是CAN、Modbus等,似乎自动化是一个“传统产业”,一个已经过去的时代,人们喜欢用自动化、信息化、智能化来为智能制造进行“断代”来阐述其关系,然而,事实却并非如此—因为,自动化是一个不断在进步的领域,而且,它是一个纯粹的应用产业,它所有的创新源泉来自于“客户需求”。
小白学视觉
2022/02/10
3420
自动化早已不是那个自动化
有“贝”而“莱” 强势围观 | 基于ABB智能技术指示灯柔性生产教学工作站 016
基于ABB智能技术指示灯柔性生产教学工作站覆盖了工业机器人技术、互联控制技术、传动技术、人机交互(HMI)技术、视觉检测技术(可自行开发视觉算法)、机械技术、传感与气动技术、多种工业现场总线技术等。其中,互联控制、人机交互(HMI)采用贝加莱产品,工业机器人、传动采用ABB产品;同一品牌的产品保证了工作站系统教学稳定性。
剑指工控
2021/11/05
7070
可编程控制器的剑宗和气宗之分
金庸笔下《笑傲江湖》华山派分为剑气两宗,剑宗以练剑为主,练气为辅;气宗以练气为主,练剑为辅。其实在控制器领域也是有此之分。传统控制器领域气宗被视为PLC(可编程逻辑控制器),并以西门子S7-300/400为典型产品。而剑宗常被视为PCC(可编程计算机控制器),并以贝加莱X20为典型产品。
剑指工控
2021/11/09
5470
贝加莱控制器与inhand路由器配置实现远程维护
SIM卡插入SIM卡槽中上电即可,注意此处SIM卡是标准卡,不是MicroSim卡或者Nano卡,如果是小卡,需要一个卡套。将PLC上的ETH网线插入inhand路由器LAN口中任意口即可,电脑上打开浏览器(推荐最新Chrome,其他版本可能显示不全或乱码),默认登录名adm,密码 123456(建议不要更改),在弹出界面中选择服务---网管平台的界面中模式选择短信+IP后点击应用,稍等片刻即可。
剑指工控
2021/11/09
1.2K0
贝加莱控制器与inhand路由器配置实现远程维护
有“贝”而“莱” 强势围观 | CAN总线通讯的瑞士军刀 006
本年度专为工业自动化爱好者而生的“2021贝加莱橙色灯塔杯技术最强音挑战赛”已经接近尾声,感谢合作伙伴和技术粉丝们的厚爱,感谢大家的踊跃参与!
剑指工控
2021/11/05
9530
有“贝”而“莱” 强势围观 | 贝加莱IPC助力柔性生产 018
随着社会的不断发展与进步,人们对产品个性化的需求越来越迫切,这就需要制造设备具备高度的柔性化,以适应不断变化的产品,缩短不同产品的转换时间,提高设备生产效率及稼动率。贝加莱IPC具备运算速度快、扩展性好、稳定牢靠等特点,加之可以与贝加莱PLC之间灵活交互,是作为数字化设备控制器的首选。本文将着重介绍一下贝加莱IPC在胶装机生产线中的应用。
剑指工控
2021/11/05
5210
有“贝”而“莱” 强势围观 | 采用openSAFETY的X20安全产品在半导体设备中的应用 004
半导体设备例如涂胶机、显影机、清洗机等设备在做工艺时会使用多种液态化学品,机台设置各种电磁通断阀实现液路控制,为了防止管路出现漏液,在关键位置会布置漏液传感器,当出现漏液,必须立即关断阀体,切断液路。此外,机台设置有安全门开关和急停开关,当开关触发时,必须紧急停止运动部件或者切断对应单元电源。但正常执行安全动作的前提是软件控制平台能够正常工作,倘若发生漏液或者安全门被打开,控制平台出现异常未做出响应,未将阀体关断或将运动部件紧急停止,可能会引起严重后果。为了保证安全,引进一套独立于软件控制平台的安全系统,同时采集漏液、安全门以及急停信号,当意外发生,即使软件控制平台未做出保护动作,安全控制器也能及时做出安全动作,避免事态持续恶化。
剑指工控
2021/11/05
6950
有“贝”而“莱” 强势围观 | 贝加莱ACOPOS驱动器在冶金液面控制中的应用 011
我公司圆坯连铸机结晶器液面控制系统采用塞棒PLC自动控制系统,该系统能进行全方位的自动控制来满足生产工艺要求。主系统主要采用PLC控制贝加莱ACOPOS伺服驱动器,来控制电动缸运行,控制精度达到+-2mm以内,实现了自动浇铸,液面稳定,有效提升钢坯质量。
剑指工控
2021/11/05
5660
机器的智能实现—自动化人怎么干?
产业里很多人都受到来自商业AI热炒的影响,对AI抱有巨大的期望,甚至认为人工智能+制造,即是智能制造,这个说法有些片面。首先要澄清的是,以诺伯特.维纳博士在1948年的《控制论-动物与机器的通信与控制》这一著作为代表的控制论(图1),本身也是人工智能三大学派之一的行为主义学派,事实上,对于工业而言,智能是一直在路上,只是限于算力和成本,人工智能并未在工业有广泛的应用突破,今天,人工智能由于消费类的应用,使得规模效应出来了,算力具有了经济性的趋势,人们开始又关注这一方法来解决工业问题。
剑指工控
2021/11/09
8100
有“贝”而“莱” 强势围观 | 贝加莱在自动测试中的应用026
随着国家碳达峰碳中和工作的开展,新能源行业迎来了新的发展机遇,在风电行业中的超级电容往往需要充电机对其充电,以保证超级电容具备足够能量应对突发情况。本文以充电机作为批量测试对象,搭建以贝加莱PLC为核心的自动化测试平台。
剑指工控
2021/11/05
8190
运动控制器发展概述
传统的早期可编程逻辑控制器 (PLC) 主要是针对硬接线继电器控制、接触器控制的自动化系统改造而设计出来的产品。PLC的出现对于设备制造商、调试工程师和服务人员就要面临从布线工作到编程的转变,为顺应这一群体的需求,梯形图等编程语言应运而生。随着日益增长的自动化需求,可视化的HMI和分布式的IO通信也加入到自动化系统中来,从而丰富了控制系统的功能。
科控物联
2022/03/29
1K0
运动控制器发展概述
有“贝”而“莱” 强势围观 | PLC、运动控制和 HMI 集于一身 014
贝加莱每套设备都有自己独特的功能,多功能的实现可以大大提高工 作的质量,能实现 PLC、运动控制和 HMI 集于一身的ETAL301.1C05- 1,这就是它与众不同之处。步进电机模块用于控制额定电压为24至39V DC(±25%)的步进电机,电机电流高达3A。应答器阅读器可用于实施访问控制和产品跟踪领域的解决方案。电源面板C70和键盘 模块 4XP0043.00-00B允许在人机界面(HMI)领域执行复杂的任务。
剑指工控
2021/11/05
5780
AS里如何通过配置将以太网口配置为modbus TCP slave?
帮助路径:Location ID :13.11.4.2.1 按照Help步骤做即可。
剑指工控
2021/11/09
1.1K0
有“贝”而“莱” 强势围观 | 基于AS的智慧用电人才培训平台 010
智慧用电是充分应用移动互联、人工智能等现代信息技术和先进通信技术,实现传统配电系统各个环节万物互联、人机交互,状态感知、信息高效处理、应用便捷灵活的配电物 联网系统。所涉及的智能制造、灯塔工厂、智慧城市、智慧园区、5G、新能源汽车充电桩、数据中心、轨道交通等板块均与智慧用电产业密切相关。产业的革新与发展,必将需要大量 的智慧用电复合型工程技术人才,但是由于目前大部分学校仍旧停留在传统的人才培养体系中,从而导致目前人才严重短缺,制约了行业的发展。我司基于贝加莱 AS 软件和X20系列控制器,结合 ABB 智能低压电气产品与低压传动设备打造的智慧用电人才培养平台,主要应用于高校对电力与自动化复合型工程人才的培养,同时也满足各电气类技术型企事业单 位,对新员工的技术培训。
剑指工控
2021/11/05
4420
网孔型高级维修电工实训装置
ZN-88CCV网孔型高级维修电工实训装置 一、概述 ZN-88CCV网孔型高级维修电工实训装置主要由实训桌、网孔板、实训元器件(也可自购)组成。学生根据实训线路进行元器件的合理布局,安装、接线全部由学生自行完成,接近工业现场,能完成电工基础电路,电机控制线路,照明配电的模拟操作,PLC可编程综合应用线路,电子技术应用电路的综合实训,通过一系列项目实训培养学生动手能力和实操技能。实训项目可自行确定,根据所选的项目选择相应的元器件。该装置也可作为电工考工的考核设备。
全栈程序员站长
2022/09/06
5820
网孔型高级维修电工实训装置
在Automation Runtime中如何使用扫码枪
扫描枪(BarCoder Reader )作为光学、机械、电子、软件应用等技术紧密结合的高科技产品,是继键盘和鼠标之后的第三代主要的电脑输入设备。扫描枪自 80 年代诞生之后,得到了迅猛的发展和广泛的应用,从最直接的图片、照片、胶片到各类图纸图形以及文稿资料都可以用扫描枪输入到计算机中,进而实现对这些图像信息的处理、管理、使用、存储或输出。
剑指工控
2021/11/09
4.4K0
在Automation Runtime中如何使用扫码枪
PROFINET至CANopen网关应用:基于西门子S7-1200和贝加莱X20的跨协议通信
某新能源电池制造企业,致力于锂电池的生产制造。其生产线规模庞大且复杂,涵盖了原材料搅拌、涂布、辊压、分切、卷绕、焊接、注液、检测等多个关键环节。在这条生产线上,不同的设备由不同的供应商提供,导致所采用的通信协议各不相同。其中,部分核心设备采用ROFINET协议进行通信,而一些执行机构和传感器则采用CANopen协议。这种协议的差异,使得设备之间无法直接进行高效的数据交互,严重制约了生产线的整体运行效率。
捷米特研发一部
2025/06/13
1280
PROFINET至CANopen网关应用:基于西门子S7-1200和贝加莱X20的跨协议通信
推荐阅读
相关推荐
有“贝”而“莱” 强势围观 | 贝加莱X20在制氧厂空气压缩机上的应用 020
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验