当前位置: 首页 > news >正文

safari扩展程序开发

文章目录

  • safari_web_extensions
    • 开发扩展
      • 扩展有3个主要部分:
      • 使用 WebExtension API
        • runtime
    • local debug
      • Safari中允许运行 未签名的扩展
      • install extension
      • update extension
    • publish

safari的extension文档不是很好,建议参考mozilla文档
https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/WebExtensions

safari_web_extensions

safari_web_extension以app的形式安装,安装 扩展APP后,扩展会安装在safari浏览器中

如果不是Apple开发者计划的一部分,或者如果您尚未为现有的Xcode项目配置开发者身份,则您的Safari Web扩展将不会使用开发证书签名

开发扩展

扩展有3个主要部分:

  1. backgroud.js 后台脚本
    在backgroud环境运行,提供了 window 全局变量,也提供了所有的标准 DOM API
  2. content.js 内容脚本
    可以使用 document 对象获取、操作页面的 DOM
  3. popup.js 扩展弹框脚本
    是一个普通网页一样

使用 WebExtension API

  • WebExtension API列表
    https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs

要使用WebExtension API,需要在你的 manifest.json 中申请WebExtension API权限

  • manifest.json case
    "permissions": ["runtime","activeTab","tabs","scripting","messaging","webNavigation","<all_urls>"]
  • 使用 browser 命名空间访问这些 API。
browser.runtime
browser.tabs
runtime

提供一组消息通信 API,在附加组件的不同模块间通信。

// 发送消息
browser.runtime.sendMessage()	
// 接受消息
browser.runtime.onMessage.addListener(listener)
browser.runtime.onMessage.removeListener(listener)
browser.runtime.onMessage.hasListener(listener)
  • case
browser.runtime.sendMessage({ greeting: "hello" }).then((response) => {console.log("Received response: ", response);
});browser.runtime.onMessage.addListener((request, sender, sendResponse) => {console.log("Received request: ", request);
});

local debug

Safari中允许运行 未签名的扩展

Safari默认情况下会忽略未签名的扩展程序

  1. Safari > Settings.
  2. Advanced > Show features for web developers在这里插入图片描述
  3. Develop > Allow Unsigned Extensions 【每次重启safari都要重新打开】
    在这里插入图片描述

install extension

  1. 选择 应用程序(macOS)
  2. run在这里插入图片描述
    应用程序主页面在这里插入图片描述
    没报错的话safari extension会显示出来
    在这里插入图片描述

update extension

  • 删除旧的 bundle
    Xcode Product > Clean Build Folder
    在这里插入图片描述

  • Xcode Product > Build
    Xcode会将最新的更改打包到macOS应用程序中的扩展文件中。构建完成后,您的扩展更新即可在Safari中使用。

publish

Xcode Product > Archive > Distribute App

  1. 打包到本地
  2. 发布到app store

http://www.mrgr.cn/news/5124.html

相关文章:

  • C++:继承(protected、隐藏、不能被继承的类、)
  • 【HTML】使用Javascript制作网页
  • 【python报错已解决】`Traceback (most recent call last)`
  • 手机麻将APP开发违法吗,有哪些注意的地方呢?
  • 苹果上架没有iphone、没有ipad也可以生成截屏
  • Scratch编程深度探索:解锁递归与分治算法的奥秘
  • 数据库学习
  • jmeter中导入java方法并使用
  • 基于深度学习的用户行为建模
  • 制造企业为什么要数字化转型?面临哪些困难?
  • 8、深入理解AQS之共享锁Semaphore
  • C++基础知识五
  • uniapp分包echarts
  • MySQL 触发器(Trigger)
  • ES聚合,SQL查询
  • gitlab迁移至新的服务器
  • python 异常处理详解带(3分钟速通)
  • 大数据与大模型技术赋能:革新智能客服系统知识库管理的策略与实践
  • 【具体数学 Concrete Mathematics】1.1 递归问题 讲义
  • GitHub 官方 CLI 客户端发布 2.55.0