iOS 9 更新之Safari广告拦截器(Content Blocker)开发教程

yizhihongxing

下面是针对“iOS 9 更新之Safari广告拦截器(Content Blocker)开发教程”的完整攻略。

简介

iOS 9 更新后,Safari引入了 Content Blocker API。Content Blocker 可以用于拦截 Safari 加载的网页中的广告、图片以及其他的资源,以达到优化网站加载速度、降低流量消耗和提升用户体验的效果。本教程将会详细介绍 Content Blocker 的开发步骤。

开发步骤

1. 创建 Content Blocker Extension

Content Blocker Extension 是 Content Blocker 的一种实现方式,可用于拦截网页中的资源。要创建 Content Blocker Extension,只需在 Xcode 中新建一个 Target,选择 Content Blocker Extension 模板。

2. 添加规则(Rules)

在 Content Blocker Extension 中,规则是用于指定要拦截的内容的。规则可以是 JSON 或者是 Property List 格式。常见的规则包括:

  • url-filter(必选):用于指定拦截的 URL 地址,可以使用通配符或正则表达式。
  • action:用于指定拦截的行为,包括 block(阻止请求)、redirect-url(重定向 URL)和 css-display-none(隐藏元素)。

3. 加载规则

在 Content Blocker Extension 中,可以将规则存储在 Bundle 中,也可以从网络中加载规则。加载规则的步骤包括:

  • 创建一个新的 Data 类型的规则对象。
  • 解析 JSON 格式的规则,并初始化规则对象。
  • 将规则对象的值设置到 Content Blocker Extension 的存储中。

4. 调试 Content Blocker

调试 Content Blocker 的整个过程比较难以直观地观察到其效果。不过,我们可以通过 Safari 远程调试器来查看拦截的效果。具体步骤如下:

  • 在 iOS 设备或模拟器中运行应用程序。
  • 在 Safari 中打开开发者工具面板并选择远程 iOS 设备。
  • 选择该设备上的 Content Blocker Extension 并开启它,然后在面板中加载一个可以拦截广告的网站,即可查看效果。

示例说明

接下来,我们来看两个实例说明。

示例一:屏蔽知乎广告

以下代码片段是一个可以屏蔽知乎广告的规则:

{
    "trigger": {
        "url-filter": ".*zhihu.*",
        "resource-type": ["script", "image", "xhr"]
    },
    "action": {
        "type": "block"
    }
}

解释一下这个规则的含义:在 URL 匹配到“zhihu”的时候,对于所有的 script、image 和xhr 资源,通过 block 阻止它们的请求。

示例二:屏蔽 PCPOP 网页中的广告

以下是可以屏蔽 PCPOP 网页的广告的规则:

{
    "trigger": {
        "url-filter": ".*pcpop.*",
        "resource-type": ["script", "image", "style-sheet"]
    },
    "action": {
        "type": "css-display-none",
        "selector": "body > div[class]:not([class^='ad']), #topad, .related-box, #right-box"
    }
}

解释一下这个规则的含义:在 URL 匹配到“pcpop”的时候,根据选择器屏蔽 body 中所有 class 值不以“ad”开头的 div 元素、#topad 元素、.related-box 元素和 #right-box 元素。

以上是适用于 Content Blocker 的开发教程,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:iOS 9 更新之Safari广告拦截器(Content Blocker)开发教程 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • vue和react等项目中更简单的实现展开收起更多等效果示例

    实现展开收起更多等效果示例在Vue和React等项目中都可以采用下面提到的方法。 1. 使用Vue的v-if和v-else指令 Vue的v-if和v-else指令可以很方便地实现展开收起更多的效果。 示例代码如下: <template> <div> <p v-if="!isExpanded">{{ co…

    css 2023年6月10日
    00
  • vue项目搭建以及全家桶的使用详细教程(小结)

    下面是详细讲解“vue项目搭建以及全家桶的使用详细教程(小结)”的完整攻略: 一、项目前置知识 在开始搭建vue项目之前,需要掌握一些前置知识。首先需要了解vue.js的基本用法以及其核心概念,包括组件、指令、计算属性、生命周期等,以及vue-router、vuex等常用插件的使用方法;其次需要掌握Node.js和npm的基础知识,了解如何使用npm包管理器…

    css 2023年6月10日
    00
  • php+ajax制作无刷新留言板

    让我来详细讲解一下PHP+Aajx制作无刷新留言板的完整攻略。 1. 确定需求 在开始之前,我们需要先确定需求,以便清晰地了解要实现哪些功能。通常,一个简单的留言板需要的功能包括: 用户可以在留言板上发布留言,留言包括标题和内容; 用户可以查看已发布的留言列表,每个留言包括标题、内容和发布时间。 接下来,我们将实现这两个功能。 2. 设计数据库 在开始编写代…

    css 2023年6月10日
    00
  • 分享bootstrap学习笔记心得(组件及其属性)

    分享bootstrap学习笔记心得(组件及其属性) 1. 什么是bootstrap Bootstrap是Twitter公司开发的一个前端框架,它基于HTML、CSS、JavaScript,通过预设的样式,可以使前端页面快速搭建和美化。现在已经成为全球最受欢迎的前端框架之一。 2. 常用组件及其属性 2.1 导航栏(Navbar) Navgation Bar(…

    css 2023年6月11日
    00
  • Nginx+ModSecurity安全模块部署的实现

    首先我们需要了解一下Nginx和ModSecurity是什么: Nginx是一个高性能的HTTP和反向代理服务器,常用于静态链接和负载均衡。 ModSecurity是一个开源Web应用防火墙,用来保护Web应用程序免受恶意攻击,可以配置基于规则的安全策略。 接下来,我将详细讲述Nginx+ModSecurity安全模块部署的实现。 安装Nginx 首先,我们…

    css 2023年6月10日
    00
  • Vue 过渡实现轮播图效果

    Vue 过渡实现轮播图效果攻略 什么是 Vue 过渡 Vue 过渡是在添加/删除元素,或者显示/隐藏元素时,添加动画效果的机制。Vue 在添加/删除元素时,为元素添加了一些 CSS 类名,你可以在 CSS 中为这些类名设置相应的样式,达到过渡效果的目的。 实现轮播图效果 基于 Vue 过渡的轮播图 在基于 Vue 过渡的轮播图中,我们会使用到 Vue 的内置…

    css 2023年6月11日
    00
  • 使用HTML和CSS实现的标签云效果(附demo)

    使用HTML和CSS实现标签云效果一般需要以下步骤: 第一步:准备工作 在 HTML 中创建一个包含标签的列表,并加上相应的 class 或 id 等识别符,以便在 CSS 中进行样式设置。 在 CSS 中设置基本样式,包括字体、颜色、大小等,以及标签的基本布局,如位置和居中等。 例如,我们创建一个包含标签的列表: <ul class="ta…

    css 2023年6月9日
    00
  • 详解DIV+CSS布局的好处和意义

    详解DIV+CSS布局的好处和意义 什么是DIV+CSS布局 DIV+CSS布局是一种网页制作方法,它使用HTML中的 标签来分隔页面结构,使用CSS样式来定义该结构的外观。与传统的表格布局方式相比,DIV+CSS布局更加灵活、语义化,更利于SEO优化。 DIV+CSS布局的好处 灵活性更高:使用DIV+CSS布局的网站结构更加清晰,CSS样式文件和HTML…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部