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

下面是针对“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日

相关文章

  • js或css实现滚动广告的几种方案

    让我们开始讲解“js或css实现滚动广告的几种方案”的完整攻略。 一、通过JS实现滚动广告 方案一:利用原生JS实现 原生JS实现滚动广告的方法十分简单,只需要利用setInterval()函数不断修改元素的style属性即可。 下面是一个简单的示例代码: <div id="wrapper"> <div id=&quot…

    css 2023年6月10日
    00
  • js+cavans实现图片滑块验证

    JS+Canvas实现图片滑块验证攻略 简介 图片滑块验证是用于防止机器人恶意攻击的常用验证方式之一。它要求用户将拼图滑块拖动到指定位置,以证明用户不是机器人,从而进行下一步操作。在这里,我们使用JS和Canvas技术来实现图片滑块验证的效果。 思路分析 绘制背景图和滑块。 鼠标按下时,获取鼠标位置与滑块左上角的距离,便于后续计算滑块位置。 鼠标移动时,计算…

    css 2023年6月11日
    00
  • CSS filter:hue-rotate色调旋转滤镜实现按钮批量生产

    对于“CSS filter:hue-rotate色调旋转滤镜实现按钮批量生产”的完整攻略,建议分为以下几个部分来讲解: 色调旋转滤镜的基本知识 通过CSS实现色调旋转滤镜效果 批量生产按钮的方法 下面我会详细讲解每个部分。 1. 色调旋转滤镜的基本知识 色调旋转滤镜是CSS filter滤镜中的一个函数,语法格式如下: filter: hue-rotate(…

    css 2023年6月10日
    00
  • 基于JS代码实现当鼠标悬停表格上显示这一格的全部内容

    要实现当鼠标悬停在表格上时显示该格全部内容的功能,可以通过以下几个步骤来完成: 第一步:HTML 结构 首先,在HTML中创建一个表格。表格中每个单元格需要一个唯一的 id,这样我们才能在 JavaScript 中方便的找到每个单元格并触发相应的事件。 示例代码: <table> <tr> <td id="cell-1…

    css 2023年6月10日
    00
  • 详细解读CSS的预编译器PostCSS

    详细解读CSS的预编译器PostCSS 什么是PostCSS PostCSS是一款使用Javascript插件来处理CSS的工具,它可以通过插件来解析、转换和优化CSS。相比于其他CSS预处理器(如LESS和Sass),PostCSS具有更强的扩展性和灵活性。 PostCSS的安装和使用方法 首先你需要安装Node.js和npm,这样你才能够使用npm来安装…

    css 2023年6月10日
    00
  • 使用webpack搭建vue项目实现脚手架功能

    下面是使用webpack搭建vue项目实现脚手架功能的完整攻略。 1. 环境准备 首先,我们需要安装Node.js和npm。然后可以通过npm安装webpack和vue-cli: # 全局安装webpack和vue-cli npm install -g webpack vue-cli 2. 创建项目 接下来,我们可以使用vue-cli来创建一个基于webpa…

    css 2023年6月9日
    00
  • div或img图片高度随宽度自适应的方法

    要让div或img图片的高度随宽度自适应,需要使用CSS来实现。下面是具体的步骤: 步骤一:设置宽度 首先,为div或img元素设置指定的宽度。这可以通过width属性来完成。 /* 设置div元素的宽度 */ div { width: 100%; } /* 设置img元素的宽度 */ img { width: 100%; } 上面的代码中,将元素的宽度设置…

    css 2023年6月10日
    00
  • CSS3弹性盒模型开发笔记(一)

    以下是关于“CSS3弹性盒模型开发笔记(一)”的完整攻略: 1. CSS3弹性盒模型概述 CSS3弹性盒模型是一种用于布局设计的模型,它可以用于任何容器(包括块级和行内元素)中,并且可以解决多种布局问题。通过定义容器中弹性盒子的排列方式和对齐方式,我们可以实现更灵活的布局效果。 1.1 弹性容器和弹性项目 在使用弹性盒模型进行布局时,我们需要将元素包含在一个…

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