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前端技术实现静态图片局部流动效果

    首先,实现静态图片局部流动效果需要使用JavaScript前端技术配合CSS样式来完成功能。主要的步骤如下: 第一步:准备图片素材 首先需要准备需要实现效果的图片素材,最好是比较鲜明的颜色区分明显的照片或图案,例如宣传海报、卡通人物、拼图等。 第二步:将图片处理为相对较小的片段 将图片处理成相对较小片段,可以使用PhotoShop等工具完成这个操作。具体步骤…

    css 2023年6月9日
    00
  • css隐藏移动端滚动条并且ios上平滑滚动的方法

    当开发移动端应用时,我们经常需要在页面上隐藏滚动条,并且保证在iOS设备上的平滑滚动体验。下面是一些实现这一目标的方法: 方法1:使用CSS样式隐藏滚动条 通过修改CSS样式,我们可以很容易地隐藏滚动条。下面是如何实现这一点: /* Hide scrollbar for Chrome, Safari and Opera */ .example::-webki…

    css 2023年6月10日
    00
  • css实现鼠标悬停时滑出层提示的方法

    实现鼠标悬停时滑出层提示的方法,可以通过CSS的:hover伪类和position属性来完成。 首先,我们可以先定义一个悬停的元素,例如一个链接或按钮: <a href="#" class="hover-element">鼠标悬停我</a> 然后在CSS中,我们可以为该元素设置一个:hover伪…

    css 2023年6月10日
    00
  • CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集

    以下是关于“CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集”的完整攻略: 什么是CSS3动画? CSS动画是一种用CSS样式表来定义动画效果的技术,它可以通过CSS定义的关键帧来控制元素的动画效果,并且这一过程是通过浏览器渲染引擎来实现的。 实现流彩文字效果的代码示例 @keyframes animate-text { from { ba…

    css 2023年6月9日
    00
  • href和src、link和@import的区别详解

    下面我会为您详细讲解“href和src、link和@import的区别详解”的完整攻略。 一、href和src的区别 1.1 href href 表示超文本引用,主要用于在 HTML 页面中在当前文档和外部资源之间建立关系,例如链接到 CSS、JavaScript、图像、样式表等。 下面是一个链接到外部样式表的例子: <link rel="s…

    css 2023年6月9日
    00
  • javascript实现上传图片并预览的效果实现代码

    实现上传图片并预览的效果,需要以下几个步骤: HTML文件中创建一个包含文件输入字段和图片预览区域的表单。 <form> <input type="file" id="fileInput"> <img id="previewImage"> </form&gt…

    css 2023年6月11日
    00
  • JavaScript canvas实现字符雨效果

    接下来我将为大家详细讲解“JavaScript canvas实现字符雨效果”的完整攻略。 概述 字符雨(Matrix Rain)是指在计算机屏幕上出现了呈现字体效果的正随机竖条,需要时常刷新,也叫做“数字降雨”、“数字雨滴”。 在本篇攻略中,我们将介绍如何使用JavaScript和HTML5的Canvas元素一步一步实现字符雨效果。 前置技能 在开始编写字符…

    css 2023年6月10日
    00
  • H5移动端适配 Flexible方案

    H5移动端适配 Flexible方案是目前比较流行的一种移动端适配方案,以下是完整攻略: 一、什么是Flexible方案 Flexible方案是一种基于JavaScript的解决方案,它利用了浏览器的缩放特性,在页面加载的时候动态改变HTML文档的font-size属性,从而实现页面的自适应调整。 二、Flexible方案的具体实现 创建一个基准值变量并计算…

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