[Chore] #209 - 사파리 외에 다른 앱에서도 Share Extension 대응 #210
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✨ 해결한 이슈
🛠️ 작업내용
1. NSExtensionActivationSupportsWebURLWithMaxCount
기존 쉐어 익스텐션 Info.plst에는
NSExtensionActivationSupportsURLWithMaxCount
로 권한을 주고 있었는데, 해당 권한은 Safari의 URL에만 반응하고 있다는 문제를 발견했습니다.NSExtensionActivationSupportsWebURLWithMaxCount
이라는 속성으로 변경해 WebURL 기반으로 되어있는 타앱에서도 Share Sheet에 표출될 수 있도록 변경했습니다!2. NSExtensionActivationSupportsText
네이버 앱의 경우에는 WebURL이 아니라 Text로 넘어오더군요..
로그로 확인해보니 NSExtensionItem의 배열로 URL에 대한 내용(웹 페이지 타이틀)+URL 주소 형태로 넘어오고 있었기에
단순히 WebURL로 받게되면 받아오지 못하던 문제가 있었습니다.
기존 Share Extension의
getUrl()
메서드를 NSExtensionItem 배열을 반복하면서 "public.url" 타입을 인식해서 처리할 수 있도록 코드를 수정했습니다!TOASTER-iOS/ToasterShareExtension/ShareViewController.swift
Lines 199 to 214 in 36c7296
저 혼자서 Share Sheet가 동작하는 모든 상황을 대응할 수 없어서,
타 앱에서 토스터를 Share Sheet로 사용해 링크 저장하는 경우 사례를 나중에 QA때 받아보는 것도 좋을 것 같습니다 ^__^
(어떤 앱은 URL만 넘기고, 어떤 앱은 URL을 Text로 넘기고, 네이버는 두개 다 넘기고 이런 식으로..)
✅ Checklist