[ios] SafariServices를 활용한 웹 페이지 내 광고 차단 설정

Safari 브라우저에서 사용자가 웹 페이지 내 광고를 차단하도록 설정할 수 있도록 하는 기능을 구현하려면 SafariServices 프레임워크를 활용할 수 있습니다. 이 프레임워크를 사용하면 Safari 브라우저를 통해 웹 페이지 내에서 발생하는 광고를 차단하도록 하는 솔루션을 제공할 수 있습니다.

1. SafariServices 프레임워크 가져오기

먼저, 프로젝트에 SafariServices 프레임워크를 가져와야 합니다. 이를 위해 Xcode에서 프로젝트를 열고, 프로젝트 설정에서 Linked Frameworks and Libraries 섹션에 SafariServices를 추가합니다.

2. SafariViewController를 활용한 웹 페이지 표시

사용자가 광고 차단 설정을 할 수 있도록 하려면, 먼저 사용자에게 웹 페이지를 표시해야 합니다. 이때 SafariViewController를 사용하여 Safari 브라우저에서 웹 페이지를 열 수 있습니다. 다음은 Swift 코드로 구현한 예시입니다.

import SafariServices

let url = URL(string: "https://example.com")!

let safariViewController = SFSafariViewController(url: url)
present(safariViewController, animated: true, completion: nil)

위 코드를 통해 SFSafariViewController를 사용하여 example.com 웹 페이지를 열 수 있습니다.

3. 광고 차단 설정 활성화

사용자가 웹 페이지를 열 때, 웹 페이지 관리 메뉴를 통해 광고 차단 설정을 활성화할 수 있도록 합니다. 사용자가 웹 페이지를 닫고 광고 차단을 설정했으면, 해당 설정을 영구적으로 저장하고 SFSafariViewController를 통해 열린 웹 페이지에서 광고가 차단되도록 설정할 수 있습니다.

이러한 설정은 사용자의 Safari 브라우저 설정에 적용되며, 이후 같은 도메인의 웹 페이지를 열 때에도 같은 광고 차단 설정이 적용됩니다.

결론

Safari 브라우저에서는 SafariServices 프레임워크를 통해 광고 차단 설정을 구현할 수 있으며, 사용자는 웹 페이지 관리 메뉴를 통해 이 설정을 활성화할 수 있습니다. 이러한 설정은 Safari 브라우저의 설정과 동기화되며, 동일한 설정이 다시 방문하는 웹 페이지에도 적용됩니다.

이를 통해 사용자는 광고가 표시되지 않는 웹 페이지를 즐겨찾기로 추가하여 사용할 수 있습니다.

참고 자료


위의 글에서는 iOS의 Safari 브라우저에서 웹 페이지 내 광고 차단 설정을 구현하는 방법에 대해 설명했습니다. 아래 내용은 참고 자료로 사용된 링크입니다.

  1. SafariServices - Apple Developer Documentation