-
iOS Swift 공유하기Language/iOS,AOS 2024. 5. 20. 09:11
iOS 앱에서 공유하기 기능을 추가할 일이 생겼다, 다음을 위해 정리해두자.
1. React
class Common { ... static share(text) { if (Util.Browser.isAndroidApp()) { try { AndroidBridge.share(text); } catch (e) {} return true; } else if (Util.Browser.isIosApp()) { const message = { action: 'share', text: text, }; window.webkit.messageHandlers.IosBridge1.postMessage(message); return true; } return false; } ... }
2. Swift
... // MARK: - iOS Bridge // 웹 액션 정의 : WebAction을 구분하는데 사용되는 타입 enum WebAction: String { case setAppData case getAppData case getAppVersion case getVersionCode case loginWithKakao case loginWithNaver case loginWithFacebook case loginWithApple case windowFullPDF case windowFull case windowFrame case windowClose case windowCloseAndOpenerReload case getNotificationId case getDeepLink case share } extension MainViewController: WKScriptMessageHandler { func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { guard message.name == IOS_BRIDGE_NAME, let messages = message.body as? [String: Any], let action = messages["action"] as? String else { return } let webAction = WebAction(rawValue: action) // 공유할 text Utils.Log("@@@@@@@@@@@@@@@@@@@@@@@ \(action)") switch webAction { ... case .share: guard let text: String = messages["text"] as? String else { return } Utils.Log("##################### text : \(text)") var shareItems = [String]() shareItems.append(text) let activityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil) activityViewController.popoverPresentationController?.sourceView = self.view self.present(activityViewController, animated: true, completion: nil) ... default: Utils.Log("undefined action") } } } ...
생각보다 너무 쉽게 되어버렸다..
참조
'Language > iOS,AOS' 카테고리의 다른 글
Swift 외부 브라우저(사파리)로 링크 열기 (0) 2024.07.10 Xcode에서 archive 키체인 로그인 오류 (0) 2024.07.01 plist 여러개 일때 Podfile 설정 (1) 2023.11.03 DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead (0) 2023.11.03 iOS 인증서 갱신하기 (0) 2023.07.17