ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리뷰 작성 유도 방법
    Language/iOS,AOS 2025. 1. 8. 10:29

    iOS에서 리뷰 작성을 유도하기 위해서 팝업 및 리뷰페이지 이동방법을 정리한다.

     

    소스코드

    • MainViewController
    class MainViewController: BaseViewController {
        let APP_STORE_ID = "111111111"
        ...
    }
    
    
    enum WebAction: String {
        ...
        case openReviewApp
        case openReviewPage
    }
    extension MainViewController: WKScriptMessageHandler {
        func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
            guard message.name == IOS_BRIDGE_NAME,
                  let messageBody = message.body as? [String: Any],
                  let action = messageBody["action"] as? String else { return }
            
            let webAction = WebAction(rawValue: action)
            
            Utils.Log("@@@@@@@@@@@@@@@@@@@@@@@ \(action)")
            
            
            switch webAction {
            ...
                
            case .openReviewApp:
                // 현재 활성화된 씬 찾기
                guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene else {
                    return
                }
                
                // 씬에 리뷰 요청하기
                SKStoreReviewController.requestReview(in: windowScene)
                
            case .openReviewPage:
                Utils.openAppStoreReview(appId: APP_STORE_ID)
                
            default:
                ...
            }
        }
        
        ...
    }

     

    • Utils
    import Foundation
    import UIKit
    import WebKit
    import UserNotifications
    
    class Utils: NSObject {
        // 앱스토어 리뷰 페이지로 직접 이동
        static func openAppStoreReview(appId: String) {
    //        let appId = "1196256988" // 앱스토어 ID 입력
    //        let urlStr = "https://apps.apple.com/app/id\(appId)?action=write-review"
    //        
    //        if let url = URL(string: urlStr),
    //           UIApplication.shared.canOpenURL(url) {
    //            UIApplication.shared.open(url, options: [:], completionHandler: nil)
    //        }
            
            // 방법 1: 앱스토어 앱으로 직접 이동
            if let writeReviewURL = URL(string: "itms-apps://itunes.apple.com/app/id\(appId)?action=write-review") {
                UIApplication.shared.open(writeReviewURL, options: [:]) { success in
                    if !success {
                        // 실패시 웹 버전으로 시도
                        if let webReviewURL = URL(string: "https://apps.apple.com/app/id\(appId)?action=write-review") {
                            UIApplication.shared.open(webReviewURL, options: [:], completionHandler: nil)
                        }
                    }
                }
            }
            
        }
    }

     

     

     

     

     

     

     

    댓글

Designed by Tistory.