XCode 16.4 日本語化計画
適切な場合に、StoreKit に App Store メッセージを表示するように要求するインスタンス。
@MainActor struct DisplayMessageAction
StoreKit メッセージは、App Store からの重要な情報を顧客に表示するためにあなたのアプリ上に表示されるシートを表します。メッセージには理由があり、reason の値で示されます。StoreKit はあなたのアプリの各起動時に App Store からすべてのメッセージを取得し、デフォルトで表示します。あなたのアプリはメッセージを注目し、適切なタイミングでシステムに表示を依頼することで、必要に応じて App Store メッセージを遅延または抑制できます。
この API を使用するには、displayStoreKitMessage 環境値を読み取り、与えられた Environment の構造体のインスタンスを取得します。このインスタンスを呼び出して、StoreKit に App Store メッセージを表示するよう指示します。StoreKit は、メッセージがまだ保留中の場合のみ表示します。期限切れのメッセージは表示しません。インスタンスには callAsFunction(_:) メソッドが定義されているため、Swift はインスタンスを呼び出すとこのメソッドを呼び出すため、インスタンスを直接呼び出します。
以下のコード例は、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 メッセージを表示するように指示します。
SendableMetatype
あなたのアプリで App Store メッセージを受信して表示するためのインスタンス。
App Store メッセージの理由。