[ios] SafariServices를 활용한 웹페이지 북마크 및 공유 기능

iOS 앱을 개발하다 보면 Safari와의 연동이 필요한 경우가 많습니다. 사용자들이 웹페이지를 즐겨찾기에 추가하거나 다른 사람과 공유할 수 있도록 하는 것이 일반적입니다. 이러한 요구를 충족시키기 위해서는 SafariServices를 활용하는 것이 좋은 방법입니다.

SafariServices란?

SafariServices 프레임워크는 iOS 앱 내에서 Safari와의 연동을 위한 기능을 제공합니다. Safari의 특정 기능을 앱 내에서 사용할 수 있도록 해주며, 웹페이지를 불러와 보여주는 등의 작업을 할 수 있습니다.

웹페이지 북마크하기

SafariServices를 사용하여 웹페이지를 북마크하는 기능을 구현하려면 SFSafariViewController를 사용해야 합니다. 아래의 코드 예제는 웹페이지를 불러와서 Safari View Controller를 통해 보여준 후 북마크 버튼을 누르면 해당 페이지를 Safari의 북마크에 추가하는 기능을 구현한 것입니다.

import SafariServices

// ...

let url = URL(string: "https://example.com")!
let safariViewController = SFSafariViewController(url: url)
present(safariViewController, animated: true, completion: nil)

// Later, in response to a user action, add a bookmark to the current page.
let bookmark = SFSafariServicesBookmark(url: safariViewController.url!, title: safariViewController.title!)
SFSafariServicesController.shared().add(bookmark)

웹페이지 공유하기

웹페이지를 공유하는 기능은 UIActivityViewController를 사용하여 구현할 수 있습니다. 사용자가 Safari View Controller를 통해 웹페이지를 열었을 때, 화면에서 공유 버튼을 누르면 웹페이지를 다양한 방법으로 공유할 수 있는 기능을 제공할 수 있습니다. 아래는 UIActivityViewController를 사용하여 웹페이지를 공유하는 예제 코드입니다.

// Show the share sheet
let items = [url]
let ac = UIActivityViewController(activityItems: items, applicationActivities: nil)
present(ac, animated: true)

결론

SafariServices를 활용하면 iOS 앱에서 Safari와 원활하게 연동하여 웹페이지를 북마크하고, 다양한 방법으로 공유하는 기능을 구현할 수 있습니다. 사용자들에게 더 좋은 웹 브라우징 경험을 제공하기 위해 이러한 기능들을 적절히 활용하는 것이 중요합니다.

이러한 기능을 구현하기 위해서는 SafariServices 프레임워크 공식 문서를 참조하는 것이 도움이 될 것입니다.

참고 자료:

  1. SafariServices 프레임워크 공식 문서
  2. SFSafariViewController - Apple Developer Documentation