Firebase 다이나믹 링크 제거
This commit is contained in:
parent
c7df92600d
commit
dfac57ee23
|
@ -9,52 +9,12 @@ import SwiftUI
|
|||
import AppTrackingTransparency
|
||||
|
||||
import FBSDKCoreKit
|
||||
import FirebaseDynamicLinks
|
||||
|
||||
@main
|
||||
struct SodaLiveApp: App {
|
||||
|
||||
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
|
||||
|
||||
func handleIncomingDynamicLink(_ dynamicLink: DynamicLink) {
|
||||
guard let url = dynamicLink.url else {
|
||||
DEBUG_LOG("That's weired. My dynamic link object has no url")
|
||||
return
|
||||
}
|
||||
|
||||
DEBUG_LOG("incoming link parameter is \(url.absoluteString)")
|
||||
|
||||
let queryItems = URLComponents(url: url, resolvingAgainstBaseURL: true)?.queryItems
|
||||
let roomId = queryItems?.filter({$0.name == "room_id"}).first?.value
|
||||
let channelId = queryItems?.filter({$0.name == "channel_id"}).first?.value
|
||||
let messageId = queryItems?.filter({$0.name == "message_id"}).first?.value
|
||||
let audioContentId = queryItems?.filter({$0.name == "content_id"}).first?.value
|
||||
|
||||
if let roomId = roomId {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
|
||||
AppState.shared.pushRoomId = Int(roomId) ?? 0
|
||||
}
|
||||
}
|
||||
|
||||
if let channelId = channelId {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
|
||||
AppState.shared.pushChannelId = Int(channelId) ?? 0
|
||||
}
|
||||
}
|
||||
|
||||
if let messageId = messageId {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
|
||||
AppState.shared.pushMessageId = Int(messageId) ?? 0
|
||||
}
|
||||
}
|
||||
|
||||
if let audioContentId = audioContentId {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
|
||||
AppState.shared.pushAudioContentId = Int(audioContentId) ?? 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var body: some Scene {
|
||||
WindowGroup {
|
||||
ContentView()
|
||||
|
@ -69,29 +29,6 @@ struct SodaLiveApp: App {
|
|||
.onOpenURL { url in
|
||||
DEBUG_LOG("I have received a URL through a custom scheme! \(url.absoluteString)")
|
||||
ApplicationDelegate.shared.application(UIApplication.shared, open: url, options: [:])
|
||||
if let scheme = url.scheme {
|
||||
if scheme == "kr.co.vividnext.sodalive" {
|
||||
if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
|
||||
self.handleIncomingDynamicLink(dynamicLink)
|
||||
} else {
|
||||
DEBUG_LOG("dynamic link fail")
|
||||
}
|
||||
} else {
|
||||
DynamicLinks.dynamicLinks().handleUniversalLink(url) { dynamicLink, error in
|
||||
guard error == nil else {
|
||||
DEBUG_LOG("Found an error! \(error!.localizedDescription)")
|
||||
DEBUG_LOG("dynamic link fail")
|
||||
return
|
||||
}
|
||||
|
||||
if let dynamicLink = dynamicLink {
|
||||
self.handleIncomingDynamicLink(dynamicLink)
|
||||
} else {
|
||||
DEBUG_LOG("dynamic link fail")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
import Foundation
|
||||
import Combine
|
||||
|
||||
import FirebaseDynamicLinks
|
||||
|
||||
final class ContentDetailViewModel: ObservableObject {
|
||||
|
||||
private let repository = ContentRepository()
|
||||
|
@ -202,41 +200,6 @@ final class ContentDetailViewModel: ObservableObject {
|
|||
}
|
||||
|
||||
func shareAudioContent(contentImage: String, contentTitle: String) {
|
||||
isLoading = true
|
||||
guard let link = URL(string: "https://sodalive.net/?audio_content_id=\(contentId)") else { return }
|
||||
let dynamicLinksDomainURIPrefix = "https://sodalive.page.link"
|
||||
guard let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix) else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowPopup = true
|
||||
return
|
||||
}
|
||||
|
||||
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "kr.co.vividnext.sodalive")
|
||||
linkBuilder.iOSParameters?.appStoreID = "6461721697"
|
||||
|
||||
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "kr.co.vividnext.sodalive")
|
||||
|
||||
let socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
|
||||
socialMetaTagParameters.title = contentTitle
|
||||
socialMetaTagParameters.descriptionText = "지금 보이스온에서 이 콘텐츠 감상하기"
|
||||
socialMetaTagParameters.imageURL = URL(string: contentImage)
|
||||
linkBuilder.socialMetaTagParameters = socialMetaTagParameters
|
||||
|
||||
guard let longDynamicLink = linkBuilder.url else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowPopup = true
|
||||
return
|
||||
}
|
||||
DEBUG_LOG("The long URL is: \(longDynamicLink)")
|
||||
|
||||
DynamicLinkComponents.shortenURL(longDynamicLink, options: nil) { [unowned self] url, warnings, error in
|
||||
let shortUrl = url?.absoluteString
|
||||
let urlString = shortUrl != nil ? shortUrl! : longDynamicLink.absoluteString
|
||||
|
||||
self.isLoading = false
|
||||
self.shareMessage = urlString
|
||||
self.isShowShareView = true
|
||||
}
|
||||
}
|
||||
|
||||
func registerComment(comment: String, isSecret: Bool) {
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
import Foundation
|
||||
import Combine
|
||||
|
||||
import FirebaseDynamicLinks
|
||||
|
||||
final class UserProfileViewModel: ObservableObject {
|
||||
|
||||
private var repository = ExplorerRepository()
|
||||
|
@ -401,33 +399,6 @@ final class UserProfileViewModel: ObservableObject {
|
|||
}
|
||||
|
||||
func shareChannel(userId: Int) {
|
||||
guard let link = URL(string: "https://sodalive.net/?channel_id=\(userId)") else { return }
|
||||
let dynamicLinksDomainURIPrefix = "https://sodalive.page.link"
|
||||
guard let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix) else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowPopup = true
|
||||
return
|
||||
}
|
||||
|
||||
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "kr.co.vividnext.sodalive")
|
||||
linkBuilder.iOSParameters?.appStoreID = "6461721697"
|
||||
|
||||
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "kr.co.vividnext.sodalive")
|
||||
|
||||
guard let longDynamicLink = linkBuilder.url else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowPopup = true
|
||||
return
|
||||
}
|
||||
DEBUG_LOG("The long URL is: \(longDynamicLink)")
|
||||
|
||||
DynamicLinkComponents.shortenURL(longDynamicLink, options: nil) { [unowned self] url, warnings, error in
|
||||
let shortUrl = url?.absoluteString
|
||||
let urlString = shortUrl != nil ? shortUrl! : longDynamicLink.absoluteString
|
||||
|
||||
self.shareMessage = "보이스온 \(self.creatorProfile!.creator.nickname)님의 채널입니다.\n\(urlString)"
|
||||
self.isShowShareView = true
|
||||
}
|
||||
}
|
||||
|
||||
func userBlock(userId: Int) {
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
import Foundation
|
||||
import Combine
|
||||
|
||||
import FirebaseDynamicLinks
|
||||
|
||||
final class LiveDetailViewModel: ObservableObject {
|
||||
private let repository = LiveRepository()
|
||||
private var subscription = Set<AnyCancellable>()
|
||||
|
@ -112,51 +110,5 @@ final class LiveDetailViewModel: ObservableObject {
|
|||
}
|
||||
|
||||
func shareRoom(roomId: Int) {
|
||||
isLoading = true
|
||||
guard let link = URL(string: "https://sodalive.net/?room_id=\(roomId)") else { return }
|
||||
let dynamicLinksDomainURIPrefix = "https://sodalive.page.link"
|
||||
guard let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix) else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowPopup = true
|
||||
isLoading = false
|
||||
return
|
||||
}
|
||||
|
||||
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "kr.co.vividnext.sodalive")
|
||||
linkBuilder.iOSParameters?.appStoreID = "6461721697"
|
||||
|
||||
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "kr.co.vividnext.sodalive")
|
||||
|
||||
guard let longDynamicLink = linkBuilder.url else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowPopup = true
|
||||
isLoading = false
|
||||
return
|
||||
}
|
||||
DEBUG_LOG("The long URL is: \(longDynamicLink)")
|
||||
|
||||
DynamicLinkComponents.shortenURL(longDynamicLink, options: nil) { [unowned self] url, warnings, error in
|
||||
let shortUrl = url?.absoluteString
|
||||
|
||||
if let liveRoomInfo = self.room {
|
||||
let urlString = shortUrl != nil ? shortUrl! : longDynamicLink.absoluteString
|
||||
if liveRoomInfo.isPrivateRoom {
|
||||
shareMessage = "\(UserDefaults.string(forKey: .nickname))님이 귀하를 보이스온 비공개라이브에 초대하였습니다.\n" +
|
||||
"※ 라이브 참여: \(urlString)\n" +
|
||||
"(입장 비밀번호: \(liveRoomInfo.password!))"
|
||||
} else {
|
||||
shareMessage = "\(UserDefaults.string(forKey: .nickname))님이 귀하를 보이스온 공개라이브에 초대하였습니다.\n" +
|
||||
"※ 라이브 참여: \(urlString)"
|
||||
}
|
||||
|
||||
isShowShareView = true
|
||||
} else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowPopup = true
|
||||
return
|
||||
}
|
||||
|
||||
isLoading = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,8 +12,6 @@ import Combine
|
|||
import AgoraRtcKit
|
||||
import AgoraRtmKit
|
||||
|
||||
import FirebaseDynamicLinks
|
||||
|
||||
final class LiveRoomViewModel: NSObject, ObservableObject {
|
||||
|
||||
private var agora: Agora = Agora.shared
|
||||
|
@ -926,47 +924,6 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
|
|||
}
|
||||
|
||||
func shareRoom() {
|
||||
guard let link = URL(string: "https://sodalive.net/?room_id=\(AppState.shared.roomId)") else { return }
|
||||
let dynamicLinksDomainURIPrefix = "https://sodalive.page.link"
|
||||
guard let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix) else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowErrorPopup = true
|
||||
return
|
||||
}
|
||||
|
||||
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "kr.co.vividnext.sodalive")
|
||||
linkBuilder.iOSParameters?.appStoreID = "6461721697"
|
||||
|
||||
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "kr.co.vividnext.sodalive")
|
||||
|
||||
guard let longDynamicLink = linkBuilder.url else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowErrorPopup = true
|
||||
return
|
||||
}
|
||||
DEBUG_LOG("The long URL is: \(longDynamicLink)")
|
||||
|
||||
DynamicLinkComponents.shortenURL(longDynamicLink, options: nil) { [unowned self] url, warnings, error in
|
||||
let shortUrl = url?.absoluteString
|
||||
|
||||
if let liveRoomInfo = self.liveRoomInfo {
|
||||
let urlString = shortUrl != nil ? shortUrl! : longDynamicLink.absoluteString
|
||||
if liveRoomInfo.isPrivateRoom {
|
||||
shareMessage = "\(UserDefaults.string(forKey: .nickname))님이 귀하를 보이스온 비공개라이브에 초대하였습니다.\n" +
|
||||
"※ 라이브 참여: \(urlString)\n" +
|
||||
"(입장 비밀번호: \(liveRoomInfo.password!))"
|
||||
} else {
|
||||
shareMessage = "\(UserDefaults.string(forKey: .nickname))님이 귀하를 보이스온 공개라이브에 초대하였습니다.\n" +
|
||||
"※ 라이브 참여: \(urlString)"
|
||||
}
|
||||
|
||||
isShowShareView = true
|
||||
} else {
|
||||
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
|
||||
self.isShowErrorPopup = true
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func kickOut() {
|
||||
|
|
Loading…
Reference in New Issue