라이브, 콘텐츠, 채널 공유하기

- 파라미터 키, 값 각각 인코딩 적용
This commit is contained in:
Yu Sung
2025-03-07 03:53:33 +09:00
parent 4a0ccfa075
commit c8ea7acb2e
4 changed files with 75 additions and 34 deletions

View File

@@ -925,27 +925,34 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
func shareRoom() {
if let liveRoomInfo = self.liveRoomInfo {
var shareUrl = "https://voiceon.onelink.me/RkTm?" +
"af_dp=voiceon://" +
"&deep_link_value=live" +
"&deep_link_sub5=\(AppState.shared.roomId)" +
"&af_og_title=보이스온" +
"&af_og_description=지금 보이스온에서 라이브 참여하기"
var params = [
"af_dp": "voiceon://",
"deep_link_value": "live",
"deep_link_sub5": "\(AppState.shared.roomId)",
"af_og_title": "보이스온",
"af_og_description": "지금 보이스온에서 라이브 참여하기"
]
if let coverImageUrl = coverImageUrl {
shareUrl = shareUrl + "&af_og_image=\(coverImageUrl)"
params["af_og_image"] = coverImageUrl
}
if liveRoomInfo.isPrivateRoom {
shareMessage = "\(UserDefaults.string(forKey: .nickname))님이 귀하를 보이스온 비공개라이브에 초대하였습니다.\n" +
"※ 라이브 참여: \(shareUrl)\n" +
"(입장 비밀번호: \(liveRoomInfo.password!))"
if let shareUrl = createOneLinkUrlWithURLComponents(params: params) {
if liveRoomInfo.isPrivateRoom {
shareMessage = "\(UserDefaults.string(forKey: .nickname))님이 귀하를 보이스온 비공개라이브에 초대하였습니다.\n" +
"※ 라이브 참여: \(shareUrl)\n" +
"(입장 비밀번호: \(liveRoomInfo.password!))"
} else {
shareMessage = "\(UserDefaults.string(forKey: .nickname))님이 귀하를 보이스온 공개라이브에 초대하였습니다.\n" +
"※ 라이브 참여: \(shareUrl)"
}
isShowShareView = true
} else {
shareMessage = "\(UserDefaults.string(forKey: .nickname))님이 귀하를 보이스온 공개라이브에 초대하였습니다.\n" +
"※ 라이브 참여: \(shareUrl)"
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
self.isShowErrorPopup = true
return
}
isShowShareView = true
} else {
self.errorMessage = "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요."
self.isShowErrorPopup = true