メインコンテンツへスキップ
このガイドは、Flutterflowモバイルアプリのセットアップ用です。Flutterflowサイトをお持ちの場合は、Web SDKセットアップガイドを参照してください。

要件

  • Flutterflowプラン:Standard以上
  • 構成されたOneSignalアプリとプラットフォーム
iOS要件
  • Xcode 14+を搭載したmacOS(セットアップ手順ではXcode 16.2を使用)
  • iOS 12+、iPadOS 12+を搭載したデバイス、またはiOS 16.2+を実行するXcodeシミュレーター
  • CocoaPods 1.16.2+
Android要件
  • Google Playストア(サービス)がインストールされたAndroid 7.0+デバイスまたはエミュレーター

OneSignalアプリとプラットフォームを設定

プッシュ通知の必須セットアップ OneSignalでプッシュ通知の送信を開始するには、まずサポートするすべてのプラットフォーム(Apple(APNs)、Google(FCM)、Huawei(HMS)、Amazon(ADM))でOneSignalアプリを設定する必要があります。
組織がすでにOneSignalアカウントを持っている場合は、管理者ロールへの招待をリクエストしてアプリを設定します。それ以外の場合は、無料アカウントにサインアップして開始してください。
単一のOneSignalアプリで複数のプラットフォーム(iOS、Android、Huawei、Amazon、Web)を管理できます。
1

アプリを作成または選択

  • 既存のアプリにプラットフォームを追加するには、OneSignalダッシュボードでSettings > Push & In-Appに移動します。
  • 新規に開始するには、New App/Websiteをクリックしてプロンプトに従います。

新しいアプリを作成する例

2

プラットフォームをセットアップして有効化

  • アプリと組織の明確で認識可能な名前を選択します。
  • 設定するプラットフォーム(iOS、Androidなど)を選択します。
  • Next: Configure Your Platformをクリックします。

最初のOneSignalアプリ、組織、チャネルをセットアップする例

3

プラットフォーム認証情報を設定

プラットフォームに基づいてプロンプトに従います:認証情報を入力した後、Save & Continueをクリックします。
4

ターゲットSDKを選択

開発プラットフォーム(iOS、Android、React Native、Unityなど)に一致するSDKを選択し、Save & Continueをクリックします。

使用しているSDKを選択してドキュメントに移動

5

SDKをインストールしてApp IDを保存

プラットフォームが設定されると、OneSignal App IDが表示されます。このIDをコピーして保存してください - SDKのインストールと初期化時に必要になります。他のユーザーと共同作業する場合は、Inviteボタンを使用して開発者またはチームメイトを追加し、Doneをクリックしてセットアップを完了します。

App IDを保存して追加のチームメンバーを招待

完了したら、選択したプラットフォームのSDKインストールガイドに従って、OneSignalの統合を完了します。

セットアップ

1. 新しいカスタムアクションを作成する

Flutterflowプロジェクトで、カスタムコードに移動し、+追加ボタンをクリックしてアクションを選択します。
右側のツールバーのアクション設定で、依存関係を追加をクリックし、次の依存関係を入力して、更新をクリックしてアクションに追加します:
dependency
  dependencies:
  	onesignal_flutter: ^5.1.2
アクションコードで、プリロードされたコードの下に次のコードを追加し、アクションを保存してコンパイルします。 YOUR_APP_IDを、OneSignalダッシュボードの**設定 > キーとID**にあるOneSignalアプリIDに置き換えます。
OneSignalアプリにアクセスできない場合は、チームメンバーに招待してもらうよう依頼してください。
Flutter
  import 'package:onesignal_flutter/onesignal_flutter.dart';

  Future onesignal() async {
    //Remove this method to stop OneSignal Debugging
    OneSignal.Debug.setLogLevel(OSLogLevel.verbose);

    OneSignal.initialize("YOUR_APP_ID");

    // The promptForPushNotificationsWithUserResponse function will show the iOS or Android push notification prompt. We recommend removing the following code and instead using an In-App Message to prompt for notification permission
    OneSignal.Notifications.requestPermission(true);
  }
次に、左側のツールバーでmain.dartファイルをクリックし、右側のバーの初期アクションの横にある+アイコンをクリックして、作成されたばかりのonesignalアクションをクリックします。
これにより、アクションがアプリに追加され、アプリの実行時にOneSignal SDKが初期化されます:

2. プロジェクトのエクスポート

  • APKダウンロード(Androidのみ)
  • 完全なプロジェクトのダウンロード(iOSおよびAndroid)
開発者メニューを開き、APKをダウンロードします:
APKがダウンロードされたら、APKをAndroidエミュレーターにドラッグしてインストールすることでアプリをテストできます。プッシュ機能はすぐに機能し、ネイティブプロンプトを通じてプッシュ権限を付与するとすぐにデバイスにプッシュ通知を送信できます。

3. iOSセットアップ

ダウンロードしたプロジェクトは、iOSで起動する準備ができていない可能性があります。OneSignal固有の追加をセットアップする前に、プロジェクトが完全にビルドされていることを確認する必要があります。そのためには:
  • ターミナルウィンドウを開き、ダウンロードしたプロジェクトのiosフォルダーにcd(ディレクトリを変更)します。
  • ターミナルでflutter build iosと入力してEnterキーを押します。ビルドが完了するまで待ちます。プロジェクトのサイズによっては時間がかかる場合があります。
  • ターミナルで引き続きpod installと入力してEnterキーを押します。podのインストールが完了するまで待ちます。
プロジェクトのiosフォルダーにある.xcworkspaceファイルをXcodeで開きます。 ルートプロジェクト > メインアプリターゲット > 署名と機能を選択します。 プッシュ通知が有効になっていない場合は、+ 機能をクリックしてプッシュ通知を追加します。チームとバンドル識別子の正しい詳細を入力していることを確認してください。
再度**+ 機能をクリックしてバックグラウンドモード**を追加します。次に、リモート通知をチェックします。

通知サービス拡張機能を追加

OneSignalNotificationServiceExtensionを使用すると、iOSアプリケーションで画像、ボタン、バッジを含むリッチ通知を受信できます。OneSignalの確認済み配信分析機能にも必要です。 Xcodeで**ファイル > 新規 > ターゲット…**を選択します 通知サービス拡張機能を選択してから次へをクリックします。
製品名にOneSignalNotificationServiceExtensionと入力し、完了を押します。
完了を選択した後に表示されるダイアログでスキームをアクティブ化しないでください。 「スキームをアクティブ化」プロンプトでキャンセルを押します。

キャンセルすることで、作成したばかりの拡張機能ではなく、アプリのデバッグを続けることができます。誤ってアクティブ化した場合は、デバイスセレクターの横の中央上部近くでアプリターゲットをデバッグするために切り替えることができます。

OneSignalNotificationServiceExtensionターゲットと一般設定を選択します。 最小デプロイメントメインアプリケーションターゲットと同じ値に設定します。これはiOS 11以上である必要があります。

これはメインアプリケーションターゲットと同じ値である必要があります。

アプリグループを追加

アプリグループを使用すると、アプリがアクティブでない場合でも、通知を受信したときにアプリとOneSignalNotificationServiceExtensionが通信できます。これは、バッジと確認済み配信に必要です。 メインアプリターゲット > 署名と機能 > + 機能 > アプリグループを選択します。
アプリグループ内で、**+**ボタンをクリックします。 アプリグループコンテナーをgroup.YOUR_BUNDLE_IDENTIFIER.onesignalに設定します。ここで、YOUR_BUNDLE_IDENTIFIERはメインアプリケーションの「バンドル識別子」と同じです。
OKを押し、OneSignalNotificationServiceExtensionターゲットに対して繰り返します。 OneSignalNotificationServiceExtensionターゲット > 署名と機能 > + 機能 > アプリグループを選択します。
アプリグループ内で、**+**ボタンをクリックします。 アプリグループコンテナーをgroup.YOUR_BUNDLE_IDENTIFIER.onesignalに設定します。ここで、YOUR_BUNDLE_IDENTIFIERは**メインアプリケーションの「バンドル識別子」**と同じです。 含めないでください OneSignalNotificationServiceExtension

OneSignalNotificationServiceExtensionを含めないでください

この手順は、デフォルトのアプリグループ名(group.{your_bundle_id}.onesignal)を使用したくない場合にのみ必要です。Info.plistファイルを開き、Stringタイプとして新しいOneSignal_app_groups_keyを追加します。最後の手順でチェックしたグループ名をその値として入力します。OneSignalNotificationServiceExtensionフォルダーの下のInfo.plistに対しても同じことを行ってください。

OneSignalNotificationServiceExtensionにOneSignal SDKを追加

ios/Podfileを更新して次を含めます:
target 'OneSignalNotificationServiceExtension' do
  pod 'OneSignalXCFramework', '>= 5.0.0', '< 6.0'
end
Podfileの上部にplatform :ios, '11.0'があることを確認してください。 - または、アプリで必要な場合はより新しいiOSバージョン。
# Uncomment this line to define a global platform for your project
platform :ios, '11.0'
ターミナルを開き、iosディレクトリにcdして、pod installを実行します。 以下のエラーが表示された場合は、podfileの上部にuse_frameworks!を追加して再試行してください。
- Runner (true) and OneSignalNotificationServiceExtension (false) do not both set use_frameworks!.

OneSignalNotificationServiceExtensionコード

Xcodeプロジェクトナビゲーターで、OneSignalNotificationServiceExtensionフォルダーを選択し、NotificationService.mまたはNotificationService.swiftファイルを開きます。 ファイル全体の内容を次のコードに置き換えます。
import UserNotifications

import OneSignalExtension

class NotificationService: UNNotificationServiceExtension {

    var contentHandler: ((UNNotificationContent) -> Void)?
    var receivedRequest: UNNotificationRequest!
    var bestAttemptContent: UNMutableNotificationContent?

    override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        self.receivedRequest = request
        self.contentHandler = contentHandler
        self.bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

        if let bestAttemptContent = bestAttemptContent {
            /* DEBUGGING: Uncomment the 2 lines below to check this extension is executing
                          Note, this extension only runs when mutable-content is set
                          Setting an attachment or action buttons automatically adds this */
            // print("Running NotificationServiceExtension")
            // bestAttemptContent.body = "[Modified] " + bestAttemptContent.body

            OneSignalExtension.didReceiveNotificationExtensionRequest(self.receivedRequest, with: bestAttemptContent, withContentHandler: self.contentHandler)
        }
    }

    override func serviceExtensionTimeWillExpire() {
        // Called just before the extension will be terminated by the system.
        // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
        if let contentHandler = contentHandler, let bestAttemptContent =  bestAttemptContent {
            OneSignalExtension.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
            contentHandler(bestAttemptContent)
        }
    }
}

NotificationService.swiftファイルの例。


OneSignal SDK統合のテスト

このガイドでは、プッシュ通知、サブスクリプション登録、アプリ内メッセージをテストして、OneSignal SDK統合が正しく機能していることを確認する方法を説明します。

モバイルサブスクリプションを確認

1

テストデバイスでアプリを起動します。

初期化時にrequestPermissionメソッドを追加した場合、ネイティブのプッシュ許可プロンプトが自動的に表示されます。

iOSとAndroidのプッシュ許可プロンプト

2

OneSignalダッシュボードを確認

プロンプトを受け入れる前に、OneSignalダッシュボードを確認してください:
  • Audience > Subscriptionsに移動します。
  • ステータスが「Never Subscribed」の新しいエントリが表示されるはずです。

「Never Subscribed」ステータスのサブスクリプションを表示するダッシュボード

3

アプリに戻り、プロンプトで「許可」をタップします。

4

OneSignalダッシュボードのSubscriptionsページを更新します。

サブスクリプションのステータスがSubscribedと表示されるはずです。

「Subscribed」ステータスのサブスクリプションを表示するダッシュボード

モバイルサブスクリプションの作成に成功しました。 モバイルサブスクリプションは、ユーザーがデバイスで初めてアプリを開いたとき、またはユーザーが同じデバイスでアプリをアンインストールして再インストールしたときに作成されます。

テストサブスクリプションをセットアップ

テストサブスクリプションは、メッセージを送信する前にプッシュ通知をテストするのに役立ちます。
1

Test Subscriptionsに追加します。

ダッシュボードで、サブスクリプションの横にある**Options(3つのドット)**ボタンをクリックし、Add to Test Subscriptionsを選択します。

デバイスをTest Subscriptionsに追加

2

サブスクリプションに名前を付けます。

Test Subscriptionsタブで後でデバイスを簡単に識別できるように、サブスクリプションに名前を付けます。

「Name your subscription」フィールドを表示するダッシュボード

3

テストユーザーセグメントを作成します。

Audience > Segments > New Segmentに移動します。
4

セグメントに名前を付けます。

セグメントにTest Usersという名前を付けます(この名前は後で使用されるため重要です)。
5

Test Usersフィルターを追加し、Create Segmentをクリックします。

Test Usersフィルターを使用して「Test Users」セグメントを作成

テストユーザーのセグメントの作成に成功しました。 この個別のデバイスとテストユーザーのグループにメッセージを送信するテストが可能になりました。

API経由でテストプッシュを送信

1

App API KeyとApp IDを取得します。

OneSignalダッシュボードで、**Settings > Keys & IDs**に移動します。
2

提供されたコードを更新します。

以下のコードのYOUR_APP_API_KEYYOUR_APP_IDを実際のキーに置き換えます。このコードは、先ほど作成したTest Usersセグメントを使用します。
curl -X \
POST --url 'https://api.onesignal.com/notifications' \
 --header 'content-type: application/json; charset=utf-8' \
 --header 'authorization: Key YOUR_APP_API_KEY' \
 --data \
 '{
  "app_id": "YOUR_APP_ID",
  "target_channel": "push",
  "name": "Testing basic setup",
  "headings": {
  	"en": "👋"
  },
  "contents": {
    "en": "Hello world!"
  },
  "included_segments": [
    "Test Users"
  ],
  "ios_attachments": {
    "onesignal_logo": "https://avatars.githubusercontent.com/u/11823027?s=200&v=4"
  },
  "big_picture": "https://avatars.githubusercontent.com/u/11823027?s=200&v=4"
}'
3

コードを実行します。

ターミナルでコードを実行します。
4

画像とConfirmed Deliveryを確認します。

すべてのセットアップ手順が正常に完了した場合、テストサブスクリプションは画像を含む通知を受信するはずです:

iOSとAndroidで画像付きプッシュ通知

画像は折りたたまれた通知ビューでは小さく表示されます。通知を展開すると、完全な画像が表示されます。
5

Confirmed Deliveryを確認します。

ダッシュボードで、Delivery > Sent Messagesに移動し、メッセージをクリックして統計を表示します。confirmed統計が表示されるはずです。これは、デバイスがプッシュを受信したことを意味します。

Confirmed Deliveryを示す配信統計

Professionalプラン以上をご利用の場合は、Audience Activityまでスクロールして、サブスクリプションレベルの確認を表示します:

Audience Activityでのデバイスレベルでの Confirmed Delivery

API経由でセグメントに通知を送信することに成功しました。
  • 画像が受信されない場合は、Notification Service Extensionが不足している可能性があります。
  • Confirmed Deliveryがない場合は、こちらのトラブルシューティングガイドを確認してください。
  • 問題が発生した場合は、APIリクエストとアプリ起動の最初から最後までのログを.txtファイルにコピー&ペーストしてください。その後、両方をsupport@onesignal.comと共有してください。

アプリ内メッセージを送信

アプリ内メッセージを使用すると、ユーザーがアプリを使用している間にユーザーとコミュニケーションできます。
1

デバイスでアプリを閉じるか、バックグラウンドにします。

これは、ユーザーが新しいセッションを開始する_前_にアプリ内オーディエンスの基準を満たす必要があるためです。OneSignalでは、ユーザーがアプリをバックグラウンドまたは閉じた状態から少なくとも30秒後に開くと、新しいセッションが開始されます。詳細については、アプリ内メッセージの表示方法に関するガイドを参照してください。
2

アプリ内メッセージを作成します。

  • OneSignalダッシュボードで、Messages > In-App > New In-Appに移動します。
  • Welcomeメッセージを見つけて選択します。
  • Audienceを、以前使用したTest Usersセグメントに設定します。

「Test Users」セグメントをアプリ内メッセージでターゲティング

3

必要に応じてメッセージコンテンツをカスタマイズします。

アプリ内Welcomeメッセージのカスタマイズ例

4

トリガーを「On app open」に設定します。

5

頻度をスケジュールします。

**Schedule > How often do you want to show this message?**で、Every time trigger conditions are satisfiedを選択します。

アプリ内メッセージのスケジュールオプション

6

メッセージをライブにします。

Make Message Liveをクリックして、Test Usersがアプリを開くたびにメッセージが利用できるようにします。
7

アプリを開いてメッセージを確認します。

アプリ内メッセージがライブになったら、アプリを開きます。次のように表示されるはずです:

デバイスに表示されたWelcomeアプリ内メッセージ

メッセージが表示されない場合:
  • 新しいセッションを開始します
    • 再度開く前に、少なくとも30秒間アプリを閉じるかバックグラウンドにする必要があります。これにより、新しいセッションが開始されます。
    • 詳細については、アプリ内メッセージの表示方法を参照してください。
  • まだTest Usersセグメントに含まれていますか?
    • アプリを再インストールしたりデバイスを切り替えたりした場合は、デバイスをTest Subscriptionsに再度追加し、Test Usersセグメントの一部であることを確認してください。
  • 問題が発生していますか?
    • 上記の手順を再現しながらデバッグログの取得に従ってください。これにより、support@onesignal.comと共有できる追加のログが生成され、何が起こっているかを調査するのに役立ちます。
OneSignal SDKのセットアップが成功し、次のような重要な概念を学びました:このガイドを続けて、アプリでユーザーを識別し、追加機能をセットアップします。

ユーザー識別

以前、モバイルサブスクリプションの作成方法を説明しました。次に、OneSignal SDKを使用して、すべてのサブスクリプション(プッシュ、メール、SMSを含む)にわたるユーザーの識別に拡張します。プラットフォーム間でユーザーを統合し、エンゲージメントするために、External ID、タグ、マルチチャネルサブスクリプション、プライバシー、イベントトラッキングについて説明します。

External IDを割り当て

External IDを使用して、バックエンドのユーザー識別子を使用して、デバイス、メールアドレス、電話番号間でユーザーを一貫して識別します。これにより、チャネルとサードパーティシステム間でメッセージングが統一されたままになります(特に統合に重要)。 アプリによって識別されるたびに、SDKのloginメソッドを使用してExternal IDを設定します。
OneSignalは、サブスクリプション(Subscription ID)とユーザー(OneSignal ID)に対して一意の読み取り専用IDを生成します。ユーザーが異なるデバイスでアプリをダウンロードしたり、ウェブサイトにサブスクライブしたり、アプリ外でメールアドレスや電話番号を提供したりすると、新しいサブスクリプションが作成されます。すべてのサブスクリプションにわたってユーザーを識別するために、SDK経由でExternal IDを設定することを強くお勧めします。作成方法に関係なく。

データタグを追加

タグは、ユーザープロパティ(usernamerole、設定など)とイベント(purchase_dategame_level、ユーザーインタラクションなど)を保存するために使用できる文字列データのキーと値のペアです。タグは、高度なメッセージパーソナライゼーションセグメンテーションを強化し、より高度なユースケースを可能にします。 アプリでイベントが発生したときに、SDKのaddTagおよびaddTagsメソッドを使用してタグを設定します。 この例では、ユーザーはレベル6に到達し、current_levelというタグで識別され、値は6に設定されます。

"current_level"というタグが"6"に設定されたOneSignalのユーザープロファイル

レベルが5から10の間のユーザーのセグメントを作成し、それを使用してターゲット化されたパーソナライズされたメッセージを送信できます:

current_level値が4より大きく10より小さいユーザーをターゲットとするセグメントを示すセグメントエディター


パーソナライズされたメッセージでLevel 5-10セグメントをターゲットとするプッシュ通知を示すスクリーンショット


パーソナライズされたコンテンツを含むプッシュ通知がiOSおよびAndroidデバイスで受信されます

メールおよび/またはSMSサブスクリプションを追加

以前、SDKがプッシュとアプリ内メッセージを送信するためにモバイルサブスクリプションを作成する方法を見ました。対応するサブスクリプションを作成することで、メールとSMSチャネルを通じてユーザーにリーチすることもできます。 メールアドレスや電話番号がOneSignalアプリに既に存在する場合、SDKはそれを既存のユーザーに追加し、重複は作成しません。 ダッシュボードのAudience > UsersまたはView user APIを使用して、統合されたユーザーを表示できます。

External IDによって統合されたプッシュ、メール、SMSサブスクリプションを持つユーザープロファイル

マルチチャネルコミュニケーションのベストプラクティス
  • メールまたはSMSサブスクリプションを追加する前に、明示的な同意を得てください。
  • 各コミュニケーションチャネルの利点をユーザーに説明してください。
  • ユーザーが好むチャネルを選択できるように、チャネルの設定を提供してください。

プライバシーとユーザー同意

OneSignalがユーザーデータを収集するタイミングを制御するには、SDKの同意ゲーティングメソッドを使用します: 詳細については、プライバシーとセキュリティのドキュメントを参照してください:

プッシュ許可のプロンプト

アプリを開いたときにすぐにrequestPermission()を呼び出すのではなく、より戦略的なアプローチを取ります。許可をリクエストする前に、アプリ内メッセージを使用してプッシュ通知の価値を説明します。 ベストプラクティスと実装の詳細については、プッシュ許可のプロンプトガイドを参照してください。

プッシュ、ユーザー、アプリ内イベントをリッスン

SDKリスナーを使用して、ユーザーのアクションと状態の変化に反応します。 SDKは、フックできるいくつかのイベントリスナーを提供します。詳細については、SDKリファレンスガイドを参照してください。

プッシュ通知イベント

完全なカスタマイズについては、Mobile Service Extensionsを参照してください。

ユーザー状態の変更

アプリ内メッセージイベント

  • addClickListener():アプリ内クリックアクションを処理します。ディープリンクやイベントの追跡に最適です。
  • addLifecycleListener():アプリ内メッセージの完全なライフサイクル(表示、クリック、閉じるなど)を追跡します。

高度なセットアップと機能

統合を強化するための追加機能を探索します:

Mobile SDKのセットアップとリファレンス

モバイルプッシュセットアップガイドを確認して、すべての主要機能が有効になっていることを確認してください。 利用可能なメソッドと設定オプションの詳細については、Mobile SDKリファレンスにアクセスしてください。
おめでとうございます!Mobile SDKセットアップガイドが正常に完了しました。