はじめに
これの実装方法わかる方いますか?
— SNQ (@SNQ2001) August 8, 2022
アプリ内にAppStoreをモーダルで表示するって事がやりたいです pic.twitter.com/OZxHDWLtPC
TwitterのAppStoreポップアップが気になってツイートして見たところ、
親切な方が教えてくださいました!
SKStoreProductViewControllerのSwiftUIでの実装方法を紹介します。
実装方法
import SwiftUI
import StoreKit
struct ContentView: View {
var body: some View {
Button(action: {
showStoreProduct()
}) {
Text("ストア")
}
}
func showStoreProduct() {
let parameters = [SKStoreProductParameterITunesItemIdentifier: "443904275"]
let storeProductViewController = SKStoreProductViewController()
storeProductViewController.loadProduct(withParameters: parameters) { status, error in
if status {
let viewController = UIApplication.shared.windows.first?.rootViewController
viewController?.present(storeProductViewController, animated: true, completion: nil)
} else {
guard let error = error else { return }
print(error.localizedDescription)
}
}
}
}
注意
シュミレーターでは表示できません。
iPhone | iPad |
---|---|
おわり
SwiftUIで実装している方は少なかったのでこの記事が誰かの役に立てば嬉しいです。
もし、閉じたことを検知したい場合はSKStoreProductViewControllerDelegate
を使う必要があるのでViewControllerにを生成してからSwiftUIのViewに変換する必要があります。
そのような場合は以下の記事が参考になります。