101
96

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

#検証環境
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セレクタで指定した要素を非表示にしたり、といったことができるようです。

その他の用途

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

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

楽しみです。

101
96
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
101
96

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?