1. Qiita
  2. 投稿
  3. iOS

1分で作るiOS9の広告ブロッカー

  • 109
    いいね
  • 0
    コメント
に投稿
この記事は最終更新日から1年以上が経過しています。

検証環境

Xcode 7.0 beta6 (7A192o)

手順

  1. Xcode7を起動します
  2. 適当に新規iOSアプリのプロジェクトを作ります
  3. File > New > Target を選択し、iOS > Application Extension > Content Blocker Extension を選択して適当な名前をつけます
  4. blockerList.json というファイルを適当に編集します。
  5. iOS Simulatorで2.で作成したアプリを起動します
  6. iOSのSettings > Safari > Content Blockers を開き、自分が作った Content Blocker がオンになっていることを確認します
  7. Safariを開いて、適当なwebサイトを開いて blockerList.json 通りに広告がブロックされてれば実装完了です。

たとえば Google の広告をブロックしたければ以下のように記述します

blockerList.json
[
    {
        "action": {
            "type": "block"
        },
        "trigger": {
            "url-filter": "googlesyndication.com"
        }
    }
]

このコンテントブロッカーをインストールした状態で、Safariで適当なサイトを開いてみましょう。
例えば・・・

Simulator Screen Shot 2015.08.28 13.12.54.png

これが・・

Simulator Screen Shot 2015.08.28 13.12.26.png

こうなる。うざいバナー広告が消えてうれしい()

blockerList.json の仕様

そもそもcontent blocker ってwebkitの機能みたいですね。特定のクッキーをブロックしたり、cssセレクタで指定した要素を非表示にしたり、といったことができるようです。

https://www.webkit.org/blog/3476/content-blockers-first-look/

その他の用途

ちなみに広告にかぎらず、たとえばエロサイトとか匿名掲示板へのアクセスをブロックして、子供向けのセーフブラウジング用のブロッカーを作ることもできます。

Safariで表示できるものは何でもブロックできるんで「広告ブロッカー」と名乗りつつ、さりげなく競合他社のドメインを仕込んでおいて炎上、みたいなことが起きそうですね・・

楽しみです。