> For the complete documentation index, see [llms.txt](https://documentation.pushly.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.pushly.com/pushly-ja/integration/implementation-steps/apple-ios/sdk-swift-obj-c/sdkderigto.md).

# SDKデリゲート

{% hint style="danger" %}
すべての SDK デリゲートをアプリケーションの `AppDelegate` クラス内に含めることを推奨します。これにより、すべてのイベントを適切に処理できます。
{% endhint %}

## SDK ライフサイクル デリゲート

これらのデリゲートを実装すると、SDK の読み込みと終了を監視できます。

このプロトコルを実装するクラスを SDK に通知する必要があります。これは、 `setSDKLifecycleDelegate` メソッドを SDK で使用して行えます:

{% tabs %}
{% tab title="Swift" %}

```swift
PushSDK.setSDKLifecycleDelegate(self)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
[PushSDK setSDKLifecycleDelegate:self];
```

{% endtab %}
{% endtabs %}

以下の SDK ライフサイクル デリゲートが利用できます:

### 読み込み完了

このデリゲートは、SDK が初期化を完了し、操作可能になったときに呼び出されます。

{% tabs %}
{% tab title="Swift" %}

```swift
func pushSDK(didFinishLoading configuration: PNApplicationConfig, withNotificationSettings settings: UNNotificationSettings) {
    // SDK の読み込み完了後に実行するコードを追加
}
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
- (void)pushSDKDidFinishLoading:(PNApplicationConfig *)configuration withNotificationSettings:(UNNotificationSettings *)settings {
    // SDK の読み込み完了後に実行するコードを追加
}
```

{% endtab %}
{% endtabs %}

## 権限ライフサイクルデリゲート

これらのデリゲートを実装すると、ユーザーの権限承認の変更を監視できます。

このプロトコルを実装するクラスを SDK に通知する必要があります。これは、 `setPermissionLifecycleDelegate` メソッドを SDK で使用して行えます:

{% tabs %}
{% tab title="Swift" %}

```swift
PushSDK.setPermissionLifecycleDelegate(self)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
[PushSDK setPermissionLifecycleDelegate:self];
```

{% endtab %}
{% endtabs %}

以下の権限ライフサイクル デリゲートが利用できます:

### 権限ステータスの変更

このデリゲートは、ユーザーの権限ステータス/承認が変更されたときに呼び出されます。

「 `status` 変数はユーザーの **新しい** 権限ステータスを [UNAuthorizationStatus](https://developer.apple.com/documentation/usernotifications/unauthorizationstatus) 列挙型を使用して表します。

{% tabs %}
{% tab title="Swift" %}

```swift
func pushSDK(didReceivePermissionStatusChange status: UNAuthorizationStatus, withSettings settings: UNNotificationSettings) {
    // ユーザーの通知権限が変更された後に実行するコードを追加
}
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
- (void)pushSDKDidReceivePermissionStatusChange:(UNAuthorizationStatus)status withSettings:(UNNotificationSettings *)settings {
    // ユーザーの通知権限が変更された後に実行するコードを追加
}

```

{% endtab %}
{% endtabs %}

## 通知ライフサイクル デリゲート

これらのデリゲートを実装すると、インプレッション、オープン、その他の通知とのインタラクションなどのイベントを監視できます。

このプロトコルを実装するクラスを SDK に通知する必要があります。これは、 `setNotificationLifecycleDelegate` メソッドを SDK で使用して行えます:

{% tabs %}
{% tab title="Swift" %}

```swift
PushSDK.setNotificationLifecycleDelegate(self)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
[PushSDK setPermissionLifecycleDelegate:self];
```

{% endtab %}
{% endtabs %}

以下の通知ライフサイクル デリゲートが利用できます:

### 通知受信

このデリゲートは、ユーザーが通知を受信したときに呼び出されます

{% tabs %}
{% tab title="Swift" %}

```swift
func pushSDK(didReceiveNotification notification: PNNotification)
    // サブスクライバーのデバイスが通知を受信した後に実行するコードを追加
}
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
- (void)pushSDKDidReceiveNotification:(PNNotification *)notification {
    // サブスクライバーのデバイスが通知を受信した後に実行するコードを追加
}
```

{% endtab %}
{% endtabs %}

### URI/URL 宛先付きで通知が開かれた場合

このデリゲートは、ランディング URL が関連付けられた通知が開かれたときに呼び出されます。サブスクライバーは、その URL を表すビューへ移動する必要があります。

このメソッドは Boolean の応答を想定しています。応答が `true` の場合、この通知のオープンに対して SDK はナビゲーションを行いません。応答が `false` の場合、SDK は `open` メソッド内に追加します。

{% tabs %}
{% tab title="Swift" %}

```swift
func pushSDK(didReceiveNotificationDestination destination: String, withInteraction interaction: PNNotificationInteraction) -> Bool {
    // destination（ランディング URL）を使用して、アプリケーション内のビューへ移動
        
    // SDK に対して遷移しないよう通知するために true を返す
    return true
}
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
- (BOOL)pushSDKDidReceiveNotificationDestination:(NSString *)destination withInteraction:(PNNotificationInteraction *)interaction {
    // destination（ランディング URL）を使用して、アプリケーション内のビューへリダイレクト
    
    // SDK に対して、リダイレクトしないことを通知するには YES を返します
    return YES;
}
```

{% endtab %}
{% endtabs %}

次を参照してください。 [ディープリンク](/pushly-ja/integration/implementation-steps/apple-ios/sdk-swift-obj-c/dpurinku.md) 完全な例についてはドキュメントを参照してください。

## アプリメッセージ ライフサイクル デリゲート

これらのデリゲートを実装すると、インプレッション、オープン、その他のアプリメッセージとのインタラクションなどのイベントを監視できます。

このプロトコルを実装するクラスを SDK に通知する必要があります。これは、 `setAppMessageLifecycleDelegate` メソッドを SDK で使用して行えます:

{% tabs %}
{% tab title="Swift" %}

```swift
PushSDK.setAppMessageLifecycleDelegate(self)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
[PushSDK setAppMessageLifecycleDelegate:self];
```

{% endtab %}
{% endtabs %}

以下のアプリメッセージ ライフサイクル デリゲートが利用できます:

### アプリメッセージ表示時

このデリゲートは、アプリメッセージがユーザーに表示されたときに呼び出されます。

{% tabs %}
{% tab title="Swift" %}

```swift
func pushSDK(willPresentAppMessage appMessage: PNAppMessage) {
    // ユーザーのデバイスにアプリメッセージが表示されたときに実行するコードを追加
}
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
- (void)pushSDKWillPresentAppMessage:(PNAppMessage *)appMessage {
    // ユーザーのデバイスにアプリメッセージが表示されたときに実行するコードを追加
}
```

{% endtab %}
{% endtabs %}

### アプリメッセージでユーザーが操作したとき

このデリゲートは、ユーザーがアプリメッセージとやり取りしたときに呼び出されます。

このメソッドは Boolean の応答を想定しています。応答が `true` その場合、SDK はそのインタラクションを処理せず、Open URL アクションの場合もナビゲーションを試みません。応答が `false` の場合、SDK はそのインタラクションを処理し、インタラクションが Open URL アクションの場合は、 `open` メソッド内に追加します。

{% tabs %}
{% tab title="Swift" %}

```swift
func pushSDK(didReceiveAppMessageInteraction interaction: PNAppMessageInteraction, fromAppMessage appMessage: PNAppMessage) -> Bool {
    // ユーザーがアプリメッセージとやり取りしたときに実行するコードを追加
    
    // SDK がそのインタラクションを処理しないようにするには true を返します
    return true
}
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
- (BOOL)pushSDKDidReceiveAppMessageInteraction:(PNAppMessageInteraction *)interaction fromAppMessage:(PNAppMessage *)appMessage {
    // ユーザーがアプリメッセージとやり取りしたときに実行するコードを追加

    // SDK がそのインタラクションを処理しないようにするには YES を返します
    return YES;
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.pushly.com/pushly-ja/integration/implementation-steps/apple-ios/sdk-swift-obj-c/sdkderigto.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
