構造体


DisplayMessageAction


適切な場合に、StoreKit に App Store メッセージを表示するように要求するインスタンス。


iOS 16.0+ iPadOS 16.0+ Mac Catalyst 16.0+ visionOS 1.0+

@MainActor
  struct DisplayMessageAction




概観


StoreKit メッセージは、App Store からの重要な情報を顧客に表示するためにあなたのアプリ上に表示されるシートを表します。メッセージには理由があり、reason の値で示されます。StoreKit はあなたのアプリの各起動時に App Store からすべてのメッセージを取得し、デフォルトで表示します。あなたのアプリはメッセージを注目し、適切なタイミングでシステムに表示を依頼することで、必要に応じて App Store メッセージを遅延または抑制できます。


この API を使用するには、displayStoreKitMessage 環境値を読み取り、与えられた Environment の構造体のインスタンスを取得します。このインスタンスを呼び出して、StoreKit に App Store メッセージを表示するよう指示します。StoreKit は、メッセージがまだ保留中の場合のみ表示します。期限切れのメッセージは表示しません。インスタンスには callAsFunction(_:) メソッドが定義されているため、Swift はインスタンスを呼び出すとこのメソッドを呼び出すため、インスタンスを直接呼び出します。


注意

あなたのアプリが SwiftUI ビューではなく UIWindowScene を使用する場合は、代わりに display(in:) を使用して下さい。


以下のコード例は、App Store のメッセージに注目し、配列に保存して遅延させるか、すぐに表示するか、あるいは抑制するかを決定します。アプリが論理に従って呼び出すプライベート関数は、システムにすべての遅延したメッセージを表示するよう要求します。


import SwiftUI
import StoreKit

struct MessageExampleView: View {
    @Environment(\.displayStoreKitMessage) private var displayStoreMessage
    @State private var deferredMessages = [Message]()

    enum MessageBehavior {
        // Display the message at a later time.
        case displayLater
        // Display the message immediately.
        case displayNow
        // Do not display the message.
        case ignore
    }

    var body: some View {
        Text("Hello World")
        .task {
            for await message in StoreKit.Message.messages {
                let behavior = processMessage(message)
                switch behavior {
                    case .displayNow:
                        try? displayStoreMessage(message)
                    case .displayLater:
                        // Save the message to display it later.
                        deferredMessages.append(message)
                    case .ignore:
                        // Suppresses the message.
                        break
                }
            }
        }
    }

    private func processMessage(_ message: Message) -> MessageBehavior {
            var messageBehavior: MessageBehavior

            // Add your logic here to determine how your app should handle the message.

            return messageBehavior
        }

        // Call this function when the app is ready to display deferred messages.
        @MainActor private func displayDeferredMessages() {
            for message in deferredMessages {
                try? displayStoreMessage(message)
            }
            deferredMessages.removeAll()
        }
    }




トピックス


メッセージを表示する


func callAsFunction(Message) throws

適切な場合に、StoreKit に App Store メッセージを表示するように指示します。





関連


以下に準拠


Sendable

SendableMetatype





以下も見よ


メッセージ


struct Message

あなたのアプリで App Store メッセージを受信して表示するためのインスタンス。


struct Reason

App Store メッセージの理由。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ