# \[iOS]アプリ内メッセージを表示する

アプリケーション内にメッセージ（ダイアログ等）を表示したい場合は、アプリ内メッセージ機能を利用することで実現可能です。

アプリ内メッセージは、`KarteInAppMessaging` モジュールを導入することで利用可能です。

アプリ内メッセージは、SDKから送信したイベントをトリガーに配信され、その後SDKにより自動的にアプリケーション上に表示されます。

## 導入手順

#### 1. Podfile の編集

プロジェクトディレクトリにある `Podfile` を任意のエディタで開き、`KarteInAppMessaging` の Pod を追加します。

{% code title="Podfile" overflow="wrap" %}

```ruby
pod 'KarteInAppMessaging'
```

{% endcode %}

#### 2. Pod のインストール

プロジェクトディレクトで下記コマンドを実行し、Pod をインストールします。

{% code overflow="wrap" %}

```bash
pod install
```

{% endcode %}

## 実装手順

アプリ内メッセージを表示する上で、アプリ側の実装は不要です。\
一方でアプリケーション側で細かい制御を行いたい場合（ディープリンクによる特定画面への遷移など）は実装が必要になる場合もあります。

{% hint style="info" %}
**アプリ内メッセージの表示を制御する**

アプリ側から表示を制御したい場合は、[こちら](/ios-sdk-appendix/appendix-iam-control-ios-sdk.md) をご覧ください。
{% endhint %}

{% hint style="info" %}
**アプリ内メッセージ上でのリンククリックをトリガーにアプリ内の特定画面に遷移させる**

アプリ内メッセージ上でのリンククリックをトリガーにアプリ内の特定画面に遷移させたい場合は、カスタムURLスキームを処理するための実装を事前に行う必要があります。\
詳細については、[こちら](/ios-sdk-appendix/appendix-iam-link-control-ios-sdk.md) をご覧ください。
{% endhint %}

## 動作確認

1. イベントを送信処理を実装\
   接客サービスの配信トリガーとして機能するイベントを実装します。\
   イベントの送信については、 [イベントを送信する](/ios-sdk/tracking-ios-sdk.md) をご覧ください。
2. 接客サービスを作成\
   管理画面上で接客サービスを作成します。\
   接客サービスの作成方法については、[接客サービス作成の流れ](https://support.karte.io/post/4yOwCoZkdoPZwpFRvSrkwP) をご覧ください。
3. アプリケーションで確認\
   アプリケーションを起動し、1. で実装したイベントの送信が行われる操作を行い、2. で設定した接客サービスが配信・表示されることを確認します。

## トラブルシューティング

Other Linker Flagsに `-ObjC` が未設定だと正しく KarteInAppMessaging モジュールがロードできません。\
通常 `pod install` 時に自動で設定されますが、手動で追加した設定で上書きしていないかご確認ください。

またアプリ内の他の要素と表示が重複する、隠れてしまうような場合には、[Windowの表示レベル](https://app.developers.karte.io/ios-sdk/pages/SYLfaEC5nnJKPdyhif9F#windowの表示レベル)に従い適宜アプリ側での設定が必要です。

その他アプリ内メッセージが表示されない場合は、[KARTE for App接客が配信されない場合のチェックリスト](https://support.karte.io/post/7FZg4MZoeexYD9dJMi2r38) を参考にしてください。

**What’s Next**

アプリ内メッセージについて理解を深めるために、以下のドキュメントも併せてご覧ください。

* [アプリ内メッセージの表示の仕組み](/ios-sdk-appendix/appendix-iam-spec-ios-sdk.md)
* [アプリ内メッセージが非表示となる条件](/ios-sdk-appendix/appendix-action-hidden-condition-ios-sdk.md)
* [アプリ内メッセージの表示を制御する](/ios-sdk-appendix/appendix-iam-control-ios-sdk.md)
* [アプリ内メッセージのリンクを制御する](/ios-sdk-appendix/appendix-iam-link-control-ios-sdk.md)
* [アプリ内メッセージの状態変化を検知する](/ios-sdk-appendix/appendix-iam-state-detection-ios-sdk.md)


---

# Agent Instructions: 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:

```
GET https://app.developers.karte.io/ios-sdk/iam-ios-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
