Chrome扩展移植到Edge浏览器教程

微软在推出Edge浏览器之初,就把能够使用扩展(extension)作为一个重要功能。在Win10一周年更新版(1607)中,这项功能正式向广大用户推出(当然,Insider用户早就测试了一段时间了)。在Build2016上,微软表明,为了简化开发者的工作,正在准备推出一款专用工具,用于将Chrome浏览器的扩展移植到Edge浏览器中。

▲商店中已有的Edge扩展

 1.简介
     最近,这项工具(Microsoft Edge Extension Toolkit)也面世了。这个工具还挂着一个Preview,离完美的转制还有一段距离。但是经过几个Bug fix更新,已经能完成基本的转制工作了。这款工具适用于一周年更新版,已经能在Windows10商店下载。点此前往Windows应用商店下载。

▲Microsoft Edge Extension Toolkit

这款工具加载了Chrome扩展项目后,会创建所需的JSON清单(manifest.json),并且使用一个APIBridge为扩展中的Chrome API做一个转换。
      经过一番摸索,我成功转制了几个Chrome扩展。转制后的扩展已经可以地被安装到Edge,但是那些扩展的一部分功能还不能正常运行。应该是API的问题。从已经发布的扩展来看,Edge已经支持了许多扩展用的API了。问题应该是目前这个工具的APIBridge能够转换的Chrome API还不够丰富。

 2.转制
      现在开始以一个案例来介绍转制流程吧。首先我下载了惠惠购物助手Chrome版(youdaogouwu-4.2.9.6.crx)。然后将其后缀名改为zip,解压就可以得到他的项目代码和资源了。打开Microsoft Edge Extension Toolkit,点击左上角的Load extension to convert按钮,选择刚才解压的项目文件夹。

转制工具加载后进行分析,同时为项目添加了一个清单和两个Bridge。

这时候我们要根据转制工具下面的提示进行修改。显然红色的是错误,蓝色的是项目中成功被桥接的API。      其中一定会遇到的,数量不少,同时也很容易解决的错误是下面这种。要求你更换Chrome扩展协议的标识。
loader.js:  chrome-extension protocol should be replaced. recommend using getExtensionProtocol() - defined in API bridge
点击错误就会跳转到具体的代码行

按照建议,修改方法就是把他改成下面这样

猜测这样改的意义应该是让他在Chrome中还可以运行,但是为了方便的无脑替换,我选择直接改成ms-browser-extension:

你会发现这个错误数量不少,然而这个preview版转制工具的编辑功能不是很好,连查找替换都没有。所以我们先点击左上角的save files,然后关掉他,用VS code或者别的什么编辑器把loader.js和extension_3_1_chrome.css改好。

替换全部,保存文件就行了。这时候再用转制工具打开,错误就只剩下清单错误了,参考清单样板,咱们一个个来。

官方文档的清单样板  https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/extensions/api-support/supported-manifest-keys/json-manifest-example/

{
    "name" : "Sample extension manifest",
    "version" : "1.0.0.0",
    "author" : "Microsoft Corporation",
    "browser_action" :
    {
        "default_icon" :
        {
            "20" : "icon_20.png",
            "40" : "icon_40.png"
        },
        "default_title" : "Sample extension",
        "default_popup" : "popup.html"
    },
    "content_scripts" : [{
            "js" : ["content_script.js"],
            "matches" : ["*://*/*"]
        }
    ],
    "content_security_policy" : "script-src ‘self‘; object-src ‘self‘",
    "default_locale" : "en",
    "description" : "This is a sample extension that illustrates the JSON manifest schema",
    "options_page" : "options.html",
    "permissions" :
    [
        "*://*/*", "notifications", "cookies", "tabs", "storage", "contextMenus", "background"
    ],
    "background" :
    {
        "page" : "background.html",
        "persistent" : false
    },
    "icons" : {
        "128" : "icon_128.png",
        "16" : "icon_16.png",
        "48" : "icon_48.png"
    },
    "minimum_edge_version" : "33.14281.1000.0",
    "web_accessible_resources" : ["icon_48.png"]
} 

错误1:icon的大小未定义

错误2:.background缺少参数persistent(是否在后台持续运行),购物助手的话我想是需要的。

 错误3:author太短,实际上是没有填。随意填一个

注意:这个工具目前的版本有一个Bug。按照上面修改这些清单文件的错误是正确的,但是下面报的错误却不减反增,给人造成困惑。关掉工具重新打开,再加载一次项目就会发现这些错误不见了。
别忘了点击保存,Ctrl+S快捷键目前是无效的,说多了都是泪。

至此这个项目就算转制完成了。通过Info可以看出,有8处Chrome的API被桥接成功。工具会在代码行左边添加了标识。

同时也能轻易看到还有别的API没有被桥接,这注定了目前的转制效果还不够好。

 3.安装

那么如何安装那些没有正式发布的扩展?
      首先浏览器地址栏输入 about:flags ,进入开发者设置页,启用开发扩展功能。

然后扩展管理页就会新增一个按钮,点击加载扩展然后选择扩展的文件夹即可。

这里就加载刚才转制的惠惠购物助手 。目前这个转制扩展虽然能跑能设置,但是还不能正常发挥他的大部分功能。

 

这个工具未来的更新着重于支持桥接更多的Chrome API。相信等到这个工具摘掉Preview的那一天,使用方法应与此篇教程写作之时几无差别,但我们轻松转制出来的扩展程序都能够良好地发挥他们的功能。

当然,更可靠的方式始终是直接开发面向Edge的扩展,不过当前文档较少,还属于起步阶段。下面就分享一篇手动创建“二维码分享扩展”的博文
      “如何自己创建一个Edge 浏览器扩展” https://blogs.msdn.microsoft.com/micl/2016/09/03/edge-extension-create-a-custom-edge-extension/
      扩展项目地址 https://github.com/micli/EdgeQRCode-Extension

时间: 2024-10-06 05:20:35

Chrome扩展移植到Edge浏览器教程的相关文章

Microsoft Edge浏览器v77.0.186.0最新版

Microsoft Edge浏览器是微软最新发布的一款不同于传统IE的浏览器,Microsoft Edge浏览器功能很全面,不仅内置微软Contana,可以为用户带来更多人性化的服务,而且Microsoft Edge浏览器还有着支持插件扩展.网页阅读注释等特色功能,为用户带来高效便捷的网页浏览体验. Microsoft Edge Dev for Mac版软件介绍 基于 Chrome 内核的 Microsoft Edge 浏览器即将登陆 Mac.Windows 平台,小编也在第一时间在网上找到已经

Microsoft Edge Beta for Mac(Edge浏览器官方内部版) v79.0.309.51中文版

Edge Beta中文免费版是一款搭载了与Chrome谷歌浏览器同样的Chromium内核的Edge浏览器,不仅拥有更好的性能.稳定性以及网页兼容性,对追求效率的人士而言,最重要的是它还能“原生支持”安装和使用 Chrome 插件扩展.欢迎有需要的朋友们前来MacDown下载使用! Microsoft Edge Beta for Mac https://www.macdown.com/mac/5095.html Microsoft Edge Beta Mac版软件介绍 基于 Chrome 内核的

自己做一款简易的chrome扩展--清除页面广告

大家肯定有这样的经历,浏览网页的时候,左右两端广告,诸如“屠龙宝刀,点击就送”,以及最近火的不行的林子聪37传奇霸业什么“霸业面具,霸业吊坠”的魔性广告总是充斥我们的眼球. 当然有现成的扩展程序或者插件(两者概念稍有不同)可以清除页面广告,但是既然身为一名程序猿,尤其是FEDer,为什么不尝试一下自己写一个清除广告的扩展程序呢.其实,编写一个浏览器扩展程序十分简单,尤其是chrome扩展,可以完全使用前端技术(HTML/CSS/JS)完成一个自己编写的扩展程序.让我们一步一步,学习一下如何编写一

清除页面广告?身为前端,自己做一款简易的Chrome扩展吧

大家肯定有这样的经历,浏览网页的时候,左右两端广告,诸如“屠龙宝刀,点击就送”,以及最近火的不行的林子聪37传奇霸业什么“霸业面具,霸业吊坠”的魔性广告总是充斥我们的眼球. 当然有现成的插件可以清除页面广告,但是既然身为一名程序猿,尤其是FEDer,为什么不尝试一下自己写一个清除广告的插件呢.其实,编写一个浏览器插件十分简单,尤其是chrome插件,可以完全使用前端技术(HTML/CSS/JS)完成一个自己编写的插件.让我们一步一步,学习一下如何编写一个简单的清除广告的插件,跟烦人的页面广告sa

Chrome浏览器扩展开发系列之八:Chrome扩展的数据存储

Google Chrome浏览器扩展可以使用如下任何一种存储机制: HTML5的localStorage API实现的本地存储(此处略) Google的chrome.storage.* API实现的浏览器存储 Google的chrome.cookies.* API实现的cookie存储 1) chrome.storage API实现的浏览器存储 Chrome浏览器扩展通过chrome.storage.* API,可以存取数据或监听数据的变化. 在manifest.json文件中注册storage

5 款可以带来幸福感的 Chrome 扩展

本文标签: Chrome扩展 扩展管理工具 Extentions Google 开始先明确一个问题, Chrome里, 有这样一个区分: 优化使用体验的东西称为扩展(Extentions) 增加额外性能的东西称为插件(Plugins) Firefox的插件(Add-ons)功能上等同于Chrome的扩展(Extentions) Firefox的add-on不叫插件,叫附加组件,包括了extension扩展和plugin插件. 感谢 @风葶云 指正 每个人的上网习惯不同, 使用扩展的情况的也各异,

5 款让微博等社交网站更加清爽好用 Chrome 扩展

本文标签: Chrome扩展 Extentions 社交网站 审美 Google 原文地址: <5 款让微博等社交网站更加清爽好用 Chrome 扩展> 不论你是在新浪微博上了解朋友近况还是浏览各种段子,或者是去 Facebook 和 Twitter 上看一看外面的世界 follow 一下自己喜欢的明星,社交网站几乎占据了我们大部分的上网时间. 虽然网站内容每天都在更新,但是天天盯着一模一样的网页 UI 看久了,难免会出现审美疲劳:而新浪微博也因为加入了各种各样用不到的功能,而变得臃肿不堪,每

12 款不能少的使网页浏览获得的最佳体验Chrome 扩展

原文地址:http://whosmall.com/?post=414 本文标签: Chrome扩展 网页浏览体验 引擎划词翻译工具 Chrome浏览器 相信不少朋友和我一样,每安装新的操作系统之后,都会使用 Safari/IE 下载 Chrome 浏览器,然后将后者作为主力上网浏览器,而将前者束之高阁.毕竟从体验上说,Chrome拥有快速流畅的浏览体验,当然强大丰富的扩展也是让我一见倾心的关键. 此前我们向各位介绍了数款颇受欢迎的 Chrome 扩展,而今天笔者我起一回私心,给大家安利一些我正在

将 QQ 音乐、网易云音乐和虾米音乐资源「整合」一起的Chrome 扩展Listen 1

原文地址:http://whosmall.com/?post=418 本文标签: Chrome扩展 Chrome浏览器 Chrome扩展Listen1 音乐资源整合 Listen1安装方法 在 Chrome 上安装了这款名为 Listen 1 的插件,妈妈可是再也不用担心你找不到想听的歌了.它将 QQ 音乐.网易云音乐以及虾米音乐的音乐资源「整合」在了一起,你只需要输入音乐关键词,就可以方便地三大曲库中跳转搜索. 安装方法 Listen 1 的安装方法与一般的 Chrome Extension