Notice
Recent Posts
Recent Comments
Link
투케이2K
157. (ios/swift) SKStoreReviewController 사용해 인앱 리뷰 팝업창 호출 수행 실시 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
// [웹 코드] window.webkit.messageHandlers.setOpenReview.postMessage('');
if message.name == "setOpenReview" {
//let receiveData = message.body as! String // 전달 받은 메시지 확인
guard let checkType = message.body as? String // 전달 받은 메시지 확인
else {
print("")
print("===============================")
print("[A_Main >> userContentController() :: 자바스크립트 >> IOS]")
print("Bridge :: setOpenReview")
print("error [type] :: ", type(of: message.body))
print("로 직 :: ", "data type error >> 로직 종료")
print("===============================")
print("")
// [에러 팝업창 알림 표시]
self.showAlert(type: 0, tittle: S_FinalData.AL_TITLE, content: S_FinalData.JS_ERROR + " (setOpenReview) (data type error)", okBtb: S_FinalData.AL_OK, noBtn: "")
return
}
print("")
print("===============================")
print("[A_Main >> userContentController() :: 자바스크립트 >> IOS]")
print("Bridge :: setOpenReview")
print("설 명 :: ", "리뷰 열기 수행 실시")
print("===============================")
print("")
// -----------------------------------------
// MARK: [즉시 : 앱 스토어 리뷰창 열기 : id 예시 - id362057947]
/*
if let appstoreURL = URL(string: "https://apps.apple.com/app/" + S_FinalData.APP_ID) {
var components = URLComponents(url: appstoreURL, resolvingAgainstBaseURL: false)
components?.queryItems = [
URLQueryItem(name: "action", value: "write-review") // [리뷰창 설정]
]
guard let writeReviewURL = components?.url else {
return
}
UIApplication.shared.open(writeReviewURL, options: [:], completionHandler: nil)
}
// */
// -----------------------------------------
// MARK: [랜덤 : 인앱 리뷰 팝업창 열기]
/*
// -----------------------------------------
[인앱 리뷰 팝업창 열기 설명]
// -----------------------------------------
1. 필요 import :
- import StoreKit
// -----------------------------------------
2. 랜덤 리뷰 팝업창 호출 되지 않는 원인 종류 :
- [디버깅] : Development 팝업이 항상 표시
- [Testflight] : 팝업이 표시 되지 않음
- [AppStore] : 애플의 정책에 맞게 표시됨
365일동안 3번 이상 뜨지 않음
같은 버전에서 2번 이상 뜨지 않음
// -----------------------------------------
3. 참고 사이트 :
- https://developer.apple.com/app-store/ratings-and-reviews/
// -----------------------------------------
*/
//*
if #available(iOS 14.0, *) {
guard let scene = UIApplication
.shared
.connectedScenes
.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene
else {
print("")
print("===============================")
print("[A_Main >> userContentController() :: 자바스크립트 >> IOS]")
print("Bridge :: setOpenReview")
print("로 직 :: ", "인앱 리뷰 열기 수행 에러 [1]")
print("===============================")
print("")
return
}
SKStoreReviewController.requestReview(in: scene)
print("")
print("===============================")
print("[A_Main >> userContentController() :: 자바스크립트 >> IOS]")
print("Bridge :: setOpenReview")
print("로 직 :: ", "인앱 리뷰 열기 수행 정상 [1]")
print("===============================")
print("")
} else {
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
print("")
print("===============================")
print("[A_Main >> userContentController() :: 자바스크립트 >> IOS]")
print("Bridge :: setOpenReview")
print("로 직 :: ", "인앱 리뷰 열기 수행 정상 [2]")
print("===============================")
print("")
} else {
print("")
print("===============================")
print("[A_Main >> userContentController() :: 자바스크립트 >> IOS]")
print("Bridge :: setOpenReview")
print("로 직 :: ", "인앱 리뷰 열기 수행 에러 [1]")
print("===============================")
print("")
}
}
// */
}
[결과 출력]
반응형
'IOS' 카테고리의 다른 글
Comments