• 最新のSDKはどこで手に入りますか?

    管理画面にログインし、「SDK 及び 資料ダウンロード(最新版)」からダウンロードいただけます。

     

    ___SDK____________.png

  • ユーザーの位置情報はどのように取得していますか? 取得するタイミングは?

     

     

    iOS (ネットワーク測位モードで組み込んだ場合): 低

    • 大幅位置移動検出時
    • 滞在、移動開始検出時

     

    iOS (定期GPSモードで組み込んだ場合) :高

    • 大幅位置移動検出時
    • 滞在、移動開始検出時
    • 5分に1回

     

    Android

    • 5分に1回 ※組込時、SDKで任意に指定可能
    • アプリがフォアグラウンドになったタイミング

     

    ほか、アプリをターミネートしてから再度起動した場合もGPS・セルベースの測位を得る事ができます。

     

    大幅位置移動検出時とは

    通信時に基地局からの情報を元に、位置情報取得しております。
    例として、Aという基地局の通信から、Bという基地局の通信に変わった場合に取得されます。

     

    滞在、移動開始検出時とは

    「緯度経度、到着時間、出発時間」をiOSが知らせてくれる仕組みから位置情報を検知しております。
    滞在の具体的な基準値やロジック等はOS側で、開示されているものではございませんのでご了承ください。

     

    位置情報をFANSHIPサーバーへ送るタイミングはこちらを参照ください。

  • iOS13 - アプリケーションに対する位置情報の使用許可

     

    iOS 13 以降、インストール時に表示される「位置情報許諾ダイアログ」について、位置情報の許諾ステータスの内容と遷移が変更されたため、弊社検証用アプリ を用いて確認した内容を掲載します。

     

    (1)「常に許可」の削除

    これまでは、位置情報の利用許可にあたって、ユーザーに対して「常に許可」「許可しない」「このAppの使用中のみ許可」の3つの選択肢が提示されましたが、iOS 13 からは、「常に許可」が削除され、かわりに「1度だけ許可」が追加されました。

    (2) 段階的権限昇格

    これまでは、Appが位置情報を利用する際に Appのインストール直後からユーザーに「常に許可」を選択肢として提示できるようになっていましたが、iOS 13 からは、「暫定的に『常に許可』」という内部状態を経由することで、はじめて(暫定ではない)「常に許可」の状態(位置情報利用認可)を獲得できるようになります。

     

    __________________03.jpg

     

     

    位置情報使用許可における「1度だけ許可」について

    Appを起動してから終了するまでの期間が「1度だけ」が指す範囲となります

     

     

     

  • 許諾ダイアログとアプリ内メッセージの表示が被ってしまいます(iOS)

    許諾ダイアログに応答したあとに同じ画面でアプリ内メッセージ表示をする制御は難しいため、
    「許諾ダイアログが出ているときは、アプリ内メッセージを表示しない」対応をお勧めします。

    // 通知が許可されているかどうかを確認
    UNUserNotificationCenter.current().getNotificationSettings { (settings) in
        switch settings.authorizationStatus {
        case .authorized:
            // 通知が許可されている場合
            break
        case .denied:
            // 通知が拒否されている場合
            break
        case .notDetermined:
            // 通知許諾状態が未定の場合
            break
        }
    }

    記載箇所については 組込みガイド の「各種機能 > アプリ内メッセージ > デリゲートメソッドについて」を参考にしてください。

  • 管理画面からSDKダウンロードサイトにアクセスできず、ダウンロードができません。

     

    SDK 及び 資料ダウンロード(最新版)」にアクセスできず、以下のような画面が表示された場合、
    お手数ですが こちらのURL にアクセスいただき、ダウンロードをお願いいたします。

     

    SDK___________.png

     

    上記URLへアクセスできない場合、お客様の環境でインターネットへのアクセス制限を掛けられている可能性がございます。

    恐れ入りますが、社内ネットワークのアクセス制限のご確認をお願いいたします。

     

    また、アクセスできない場合、お問合せいただければ最新のSDKファイルをお送りすることも可能です。フォーム・またはメールにてご依頼ください。

  • アプリ内お知らせ(コンテンツ)の表示件数について教えてください。


    SDKのお知らせ一覧の表示件数はSDKの設定値で変更できます。
    初期値は SDKのバージョンにより異なりますので、以下の表をご確認ください。
    ご希望にあわせて、適宜変更してください。

    SDKバージョン Android iOS
    8.0.1~現行 1,000件 1,000件
    8.0.0以前 1,000件

    100件


    設定した数値に達した時点で、古いお知らせから表示されなくなり、非表示となります。
    非表示となったお知らせは端末内からも削除されます。
    例えば、100件の設定をしており、10件の設定に変更した場合は、90件のお知らせが削除されます。
    そのため、再度100件に設定を戻しても過去の90件お知らせは再取得されません。

     

    変更する際は、以下ファイルをご確認ください。
    また、反映させるにはアプリのアップデートが必要となります。


    Android

    /popinfo-sdk/res/values/popinfo_values.xml ファイル内

    <string name="popinfo_messages_num_default">1000</string>

     

    iOS

    /lib/PopinfoConfiguration.m ファイル内

    int const popinfoMessagesMax = 1000;
  • カスタムイベントとWebView版イベントトラッキングの文字制限が知りたい

    カスタムイベントの文字制限について

    カスタムイベントには、以下の制限があることにご注意ください。

    iOS

    • キー名は、英数字([a-zA-Z0-9])、アンダースコア(_)、ピリオド(.)、ハイフン(-)のみ使用できます。
    • キー名の先頭にアンダースコア(_)は使用できません。
    • キー名が nil や空文字の時は記録できません。
    • 文字数制限は、キー名が 32 文字、キーに対する値はトータルで 512 文字 です。

    Android

    • イベントkeyに「 _ 」アンダースコアから始まる文字列は使用不可能。
    • イベントkeyの使用可能文字は [0-9a-zA-Z]_-. になります。
    • イベントvalue値はnameとvalueで構成され、nameは必須でvalueはnullの場合は空として扱われます。
    • またvalue値はURLエンコードしてから送信します。
      • 例)URLエンコード前:a=あ&b=い URLエンコード後:a=%E3%81%82&b=%E3%81%84
    • 文字数制限は、キー名が 64 文字、キーに対する値はトータルで 500 文字 です。

    各組み込みガイド
    iOS:各種機能 > イベントトラッキング
    Android:各種機能 > カスタムイベント

     

    WebView版イベントトラッキングの文字制限について

    WebView版イベントトラッキングには、以下の制限があることにご注意ください。

    • キーと値はそれぞれstring型で指定する必要があります。
    • キーと値の合計文字数は2,048文字以下である必要があります。
      • 例){"key1:"value1", "key2":"value2"}を指定する場合、
        "key1=value1&key2=value2"の文字数が2,048文字以下である必要があります。
      • 合計文字数が超過している場合はイベントが送信されません。
    • キーと値について、Android、iOSそれぞれで異なる文字制限はありません。

    なお、イベント名(shop.addCart)については下記の制限があります。

    • 英数字([a-zA-Z0-9])、アンダースコア(_)、ピリオド(.)、ハイフン(-)のみ使用できます。
    • 先頭にアンダースコア(_)は使用できません。
    • イベント名について、Android、iOSそれぞれで異なる文字制限はありません。

    各組み込みガイド
    WebView版イベントトラッキング機能 組み込みガイド v3 > 一歩進んだ使い方

  • HTML配信で、コンテンツ画面に設定したリンクを押下しても何も起こりません

    「URLを開く」ボタンは、【ネイティブのボタン】で実装されており、カスタムURLスキームがセットされた場合は外部アプリが開けるような実装が標準でなされています。


    お知らせ詳細(コンテンツ)のリンクに関しては【WebView内で表示されるWebページのボタン】で実装されており、そこではカスタムURLスキームの場合は外部アプリが開けるような実装がされておりません。

    そのため、カスタムURL(DeepLink) を参照したい場合は表示用の処理を入れていただく必要があります。


    「カスタムURLの処理が実行されない」場合は、カスタムURLスキームが処理できていない可能性が考えられますので、実装を再度ご確認お願いいたします。

     

    <iOS>
    decidePolicyForNavigationAction の実装を再度ご確認ください。

    参考:https://developer.apple.com/documentation/webkit/wknavigationdelegate/1455641-webview

     

    PopinfoDetailViewController.m ファイルの中において独自に decidePolicyForNavigationAction を定義しているため、
    「独自のカスタムURLスキーム処理を行いたい場合に、これをオーバーライドし忘れていないか」もご確認ください。

    「ほかのWebViewだとカスタムURLを開けるのに、詳細画面だと開けない」というようなケースの場合、 「PopinfoDetailViewController.m ファイルの decidePolicyForNavigationAction 処理を見落としている」ケースが該当する可能性が考えられます。

     

    <Android>

    popinfoMessageView.javaファイル内の、カスタムURLの独自実装部分をご確認ください。

     

    参考:カスタムURLの設定

  • 【Android】フォアグラウンド時のみ位置情報取得可能と実装した場合のWi-Fi、beaconの挙動について

    Q. フォアグラウンド時のみ位置情報取得可能と実装した場合、Wi-Fi,beaconもバックグラウンド時には検知されませんか?

     

    A. Wi-Fi,beaconも位置情報と同様の定義となるためバックグラウンド時には検知されません。
    そのため、 フォアグラウンド時のみ位置情報取得可能と実装した場合は、
    アプリがフォアグラウンド時のみ、Wi-Fi,beacon,GPS配信受信可能となります。

     

    <補足>

    AndroidManifest.xml に以下を記載するか否かにより、バックグラウンド時に位置情報を取得するかどうかを選択できます。

    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

    ※記載した場合、バックグラウンド時に位置情報取得可能となります。

    GooglePlay への申請時に別途バックグラウンド位置情報のための申請が必要となりますのでご注意下さい。

  • お知らせ件数全件、お知らせ未読全件などを取得するようなメソッドはありますか?

     

    【お知らせ件数全件を取得する】

    <iOS>

    // vc は PopinfoListBaseViewController のインスタンス
    lvc.retrieveAllPopinfoMessages().count

    ※ PopinfoConfiguration.m  にある popinfoMessagesMax の影響を受けるため、たとえば int const popinfoMessagesMax = 100; と設定されている場合、端末に対して100件以上のメッセージを送ったとしても、取得される件数は100になります

    ※ 上記実装はPopinfoListBaseViewController を継承したクラスで行うのが推奨されます。

     

    <Android>

    クラス PopinfoUtils の getPopinfoAllMessages

     

     

    【お知らせ未読全件を取得する】

    <iOS>

    クラス PopinfoReceiver の getUnreadMessagesCounts

     

    <Android>

    クラス PopinfoUtilsAsync の getUnreadMessagesCount

     

     

    【補足】

    お知らせ全件、未読件数を上記で取得できますので、差し引けば既読件数も取得可能です。

  • プッシュ通知受信時のアラート表示(ポップアップダイアログ)を非表示にしたい

    iOSについて

    IMG_0169.PNG

     

    上記画像のような、プッシュ通知受信時に表示されるアラートが表示されるのは

    以下のような実装を行っていると推測されます。

    こちらのコードを削除することにより、アラート(ダイアログ)は表示されなくなります。

    let alert = UIAlertController(title: "お知らせ", message: popup, preferredStyle: UIAlertController.Style.alert)
    alert.addAction(UIAlertAction(title: "閉じる", style: UIAlertAction.Style.default, handler: {(alert) in
    // 閉じるボタンが押された時は何もしない
    }))
    alert.addAction(UIAlertAction(title: "表示", style: UIAlertAction.Style.default, handler: {(alert) in
    // 表示ボタンが押された時はお知らせ詳細画面に遷移する
    }))
    self.window?.rootViewController?.present(alert, animated: true, completion: nil)

    UIAlertController を使用している箇所を検索し、お探しください。

     

    Androidについて

    Screenshot_20211215-175647.png

    上記画像のような、プッシュ通知受信時に表示されるアラートの制御部分は以下になります。

    popinfo_values.xml

    <!-- ポップアップを表示 -->
    <string name="popinfo_popup_enabled_default">false</string>

    上記popinfo_popup_enabled_default は初期値として指定をしておりますが、
    別途メソッドとして PopinfoSettingUtils.setPopupEnabled を使用することでも、ポップアップダイアログ表示の ON/OFF を変更することが可能です。

  • iOS SDK をアップデートするとクラッシュします

    CoreData バージョンが不整合の場合は、クラッシュの原因となります。
    iOS SDKバージョンによっては CoreData モデルがバージョンアップしている場合がありますので、
    SDK組込みガイド(従来版)「4 SDK付属品一覧」 における CoreData モデルバージョン を確認の上、
    モデルバージョンが正しく設定されていることをご確認ください。


    ■CoreData バージョンを変更するには?
    Xcode上で、PopinfoReceiver.xcdatamodeld をクリックすると、
    画面右側「Core Data Model > Model Version」の「Current」にバージョンが表示されます。
    Current のプルダウンメニューから、最新バージョンを選択してください。
    CoreDataモデルバージョンは常に最新バージョンを指定してください。
    バージョンが適切に設定されていない場合、App の異常終了を発生させることがあります。

  • 主要イベントの発火契機について

    具体的には以下のイベントの発火契機をまとめています。

    開封数・・・ _S.push.open
    お知らせ閲覧数・・・ _S.detail.appear
    サイト閲覧数・・・ _S.detail.openUrl
    お知らせ一覧閲覧終了・・・_S.list.disappear
    お知らせ詳細閲覧終了・・・_S.detail.disappear

     

    下記が各イベントが発火する契機となりますので、正しくメソッドが呼ばれているかご確認ください。

    iOS

    開封数(_S.push.open)

    • メソッド PopinfoReceiver.shared.receiveNotification(_:) が呼ばれたタイミング
      • 通常時、通知バナーをタップしたタイミングで上記メソッドが呼ばれます

    お知らせ一覧閲覧(_S.list.appear)

    • お知らせ一覧画面のライフサイクルメソッド viewWillAppear がコールされたタイミング
      • 継承先で同メソッドを実装している場合は call-super を忘れていないことが発火条件です

    閲覧数(_S.detail.appear)

    • お知らせ詳細画面のライフサイクルメソッド viewWillAppearがコールされたタイミング
      • 継承先で同メソッドを実装している場合は call-super を忘れていないことが発火条件です

    サイト閲覧数(_S.detail.openUrl)

    • -[PopinfoDetailBaseViewController didSelectOpenUrl]が呼ばれたタイミング
    • PopinfoDetailViewController を継承したクラスで webView:decidePolicyForNavigationAction:decisionHandler:メソッドを追加しているかつ、[super webView:decidePolicyForNavigationAction:decisionHandler:]を呼んでいる場合

    お知らせ一覧閲覧終了(_S.list.disappear

    • お知らせ一覧画面が最前面でなくなった時に記録されます
    • お知らせ一覧画面のライフサイクルメソッド viewWillDisappear がコールされたタイミング

    お知らせ詳細閲覧終了_S.detail.disappear

    • お知らせ詳細画面が最前面でなくなった時に記録されます
    • お知らせ詳細画面のライフサイクルメソッド viewWillDisappearがコールされたタイミング
      • 継承先で同メソッドを実装している場合は call-super を忘れていないことが発火条件です

     

    Android

    開封数(_S.push.open)

      • 通知バナーをタップしたタイミングで、イベントが付与されます。
      • ポップアップ通知をタップして、通知を開封した場合
        • PopinfoUiUtils.showMessageView(Context context, long messageId)メソッドをコールしたタイミング
          • カスタマイズ時など、独自で開封数を付与する場合に呼び出す場合にご利用ください
        • PopinfoBasePopupクラスを継承している場合、PUSH受信時のポップアップ画面の任意のタイミングで PopinfoBasePopup.trackEventPushOpen()を呼びだすことでイベント付与することも可能

    お知らせ一覧閲覧(_S.list.appear)

    • PopinfoBaseList クラスを継承しているクラスを表示した際に付与されます
      • 端末ホーム画面→お知らせ一覧画面へ復帰、などの遷移でも付与されます

    閲覧数(_S.detail.appear)

    • PopinfoBaseMessageView クラスを継承しているクラスを表示した際に付与されます
      • 端末ホーム画面→お知らせ詳細画面へ復帰、などの遷移でも付与されます
    • お知らせメッセージを独自に取得しFragmentの切り替えを行っている場合では閲覧率は記録されません

    サイト閲覧数(_S.detail.openUrl)

    • WebView 内での遷移
      • PopinfoMessageWebViewClient を実装し、この中で shouldOverrideUrlLoadingsuper.shouldOverrideUrlLoading(view, url);を呼んでいる場合
    • URL を開くボタンでの遷移
      • PopinfoUiUtils.openUrl で URL を開いた場合 
    • イベント付与するのみのメソッド(ボタンで開いた際と同じパラメータとなる)
      • PopinfoBaseMessageView.trackEventOpenUrl をコールした場合
        • PopinfoUiUtils.openUrl を使用できない場合はこちらを利用

    お知らせ一覧閲覧終了(_S.list.disappear

    • PopinfoBaseList クラスを継承している場合
      • 画面が非表示となる直前(onPause時)に付与されます

    お知らせ詳細閲覧終了_S.detail.disappear

    • PopinfoBaseMessageView クラスを継承している場合
      • 画面が非表示となる直前(onPause時)に付与されます

     

     

  • FANSHIP SDK はどのようなタイミングでバージョンアップすべきでしょうか?

    最新版 SDK のご利用を推奨いたします。

    使いたい新機能が発生したタイミング・不具合解消版、もしくは開発環境のverアップ時などに、
    対応版のSDKへのアップデートをご検討ください。

    OSごとのサポート状況|https://support.fanship.jp/hc/ja/articles/360034208634

    リリースノート(新機能情報)
    iPhone|https://support.fanship.jp/hc/ja/articles/360009909634
    Android|https://support.fanship.jp/hc/ja/articles/360010087293

  • Android - 配信優先度を選択した場合の制限事項について

    Android 端末では、Doze モード、アプリスタンバイバケットなどの電源管理機能の影響により、
    バックグラウンド時のアプリ動作に制限が掛かることで、プッシュ通知が遅れて届く場合があります。

     

    プッシュ通知の優先度「高」を選択することにより、電源管理の制限にかかることなく通知を送ることが可能ですが、各機能や、アプリの状態によって制限事項が異なります。以下をご参考ください。

    ※優先度「高」のプッシュ通知を適用させる場合、FANSHIP Android SDK ver 7.3.1以上を組み込む必要があります。

    ※FANSHIP Android SDK ver 7.3.1以下を組み込んでいる場合、プッシュ通知は正常に届きますが、優先度「高」の状態は適用されません。

     

     

    ■Dozeモード

    優先度 プッシュ通知
    優先度:高 制限を受けない
    優先度:中 制限を受ける

     

    ■アプリスタンバイバケット

    アプリスタンバイバケットは4種類あり、それぞれ以下のように定義されています。
    各バケットの詳細については、公式ドキュメントをご確認ください(こちら

    • アクティブ(active)
      • 現在使用されている、またはごく最近使用されたアプリ
    • ワーキング セット(working set)
      • 定期的に使用されているアプリ
    • 高頻度(frequent)
      • 毎日ではないが、よく使用されるアプリ
    • 低頻度(rare)
      • あまり使用されないアプリ

    各バケット種別により、制限事項が異なります。
    ※下記表はAndroid 12(API レベル 32)以下にのみ適用されます。

    プッシュ通知 バケット種別

    優先度

    アクティブ ワーキングセット 高頻繁 低頻度
    優先度:高 制限を受けない 制限を受けない

    10件/日

    (端末ごと)※

    5件/日

    (端末ごと) ※

    優先度:中

    制限を受けない

    制限を受けない 制限を受ける 制限を受ける 

     

    ※端末上のアプリが「頻繁」や「低頻度」のバケット種別になっている場合、
    「優先度:高」でプッシュ通知を送信した場合でも、受け取れる通知の数に制限が設けられています。

    ※Android 13(API レベル 33)では Firebase Cloud Messaging(FCM)の割り当てが更新され、優先度の高い FCM に応じて通知を表示するアプリに対する、優先度の高い FCM の配信の信頼性が向上しました。
    詳細についてはこちらの公式ドキュメントをご確認ください。

     

    ※制限を受けない・・・電源管理機能などの影響を受けずにプッシュ通知を送ることが可能です。
    ※制限を受ける・・・電源管理機能などの影響を受け、プッシュ通知が実際に端末に到達するのに遅延が発生する恐れがあります。

     

    Android 公式サイト引用:


    以上です。
    内容について不明点あれば、お気軽に お問合せ ください。


     

  • アプリアイコンのバッジの非表示方法

    iOSの場合

    入稿時、FANSHIP Management API をご利用の場合、ペイロード指定をすることでアプリ側にバッジを表示させないことが可能です。現状 SDK 実装による非表示対応は行えません。


    popup_itemsによるプッシュ通知ペイロード指定にて、badgeを「0」と指定することで非表示にできます。

     

    ただし、こちらはプッシュ通知を受信した際にバッジのカウントをリセットするものとなり、プッシュ通知を入稿する際に毎回「0」に設定する必要があります。

     

    また、FANSHIP Management APIのみの対応可能となっており、
    FANSHIP管理画面からの入稿では対応しておりませんのでご承知おきください。

     

    各種API仕様書一覧

    https://support.fanship.jp/hc/ja/articles/360026718253

     

    Androidの場合


    Androidでは設定 -> アプリと通知 -> アプリ情報 -> アプリの通知 -> 通知ドットの許可 にてエンドユーザー側で制御が行えます。

     

    アプリ側で制御したい場合は以下の通り実装をしてください。
    ※ 実装を行った場合でも、エンドユーザー側にて設定変更が可能

    ①通知のカスタマイズ設定を行い、アプリ独自の通知チャンネルを作成します。

    ※ popinfo_valuses.xml の popinfo_notification_customize_enabled を true にすることでカスタマイズが ON になります。

     

    ② 通知チャンネルを作成するタイミングで setShowBadge(false) を指定してください。
    ※ setShowBadge についてはチャンネル作成時にしか設定できないためご注意ください。

     

    ③ PopinfoCallback の onNotificaitonAppeared で作成した通知チャンネルを指定してください。
    ※組み込みガイドの各種機能 > コールバックをご参考ください。

     

    組み込みガイド

    https://support.fanship.jp/hc/ja/articles/360026570534

     

    以上です。
    不明点があればお気軽にお問い合わせください。

     

     

  • 端末の設定項目と、SDKの関係性について

    各OSとSDKの設定項目における挙動や実装についてまとめました。

    実装の参考にご活用ください。

    プッシュ配信について

    初回起動時のプッシュ通知の許諾ダイアログをOFFに設定した場合の各OS挙動について

    初回起動時のプッシュ通知の許諾ダイアログを非表示(SKIP)にした場合の挙動について

    「お知らせを受信する」の項目を非表示とする場合

    「位置情報を送信する」の項目を非表示とする場合

    「位置情報精度」の項目を非表示とする場合

     

     

    プッシュ配信について

    各OSとSDKの設定において、プッシュ配信の可否をまとめました。

    iOS

    iOS______.png

    補足
    前提としてiOSは「push_enabled = true」となるには、「お知らせを受信する」、「通知を許可」の両方がONであることと、
    「ロック画面」、「通知センター」、「バナー」、「サウンド」、「バッジ」のいずれかがONである必要があります。
    ※「ロック画面」、「通知センター」に関しては、iOS ver 9.1.0にて条件追加されました。
    ※「push_enabled = true」は、FANSHIPがプッシュ通知を送信対象と見做す指標です。

    通知許可設定 挙動
    お知らせを受信する:ON
    通知の許可:ON

    配信タイプ1、4の場合は、プッシュ通知もお知らせも届きます。

    お知らせを受信する:ON
    通知の許可:OFF

    「push_enabled = false」となるため、プッシュ通知は届きません。
    配信タイプ1の場合は、プッシュ通知もお知らせも届かない。
    配信タイプ4の場合は、お知らせのみ届きます。

    お知らせを受信する:OFF
    通知の許可:ON
    同上

     

    Android

    Android___________.png

    上記画像の右側、端末設定画面では「FANHIP DEMO のすべての通知」と表示されていますが、端末のバージョンによって「通知の表示」と表示されます。
    ここでは「通知の表示」と表記を統一して記載いたします。

    Android.png

     

    補足
    前提として、「お知らせを受信する」と、「通知の表示」は連動していません。
    「お知らせを受信する」がONであればプッシュ通知は届きます。

    通知許可設定 挙動
    お知らせを受信する:ON
    通知の表示:ON

    「お知らせを受信する」がONであればプッシュ通知は届きます。
    そのため、配信タイプ1、4の場合は、プッシュ通知もお知らせも届きます。

    お知らせを受信する:ON
    通知の表示:OFF

    同上。
    ※プッシュ通知に関して、ポップアップは表示されますが、通知エリア(画面上部の通知箇所)には表示されません。

    お知らせを受信する:OFF
    通知の表示:ON

    「お知らせを受信する」がOFFであればプッシュ通知は届きません。
    配信タイプ3、4の場合は、お知らせが届きます。

     

    初回起動時のプッシュ通知の許諾ダイアログをOFFに設定した場合の各OS挙動について

    初回起動時のプッシュ通知の許可ダイアログでOFFを設定した場合、端末とSDKの設定項目がどのように設定されるかまとめました。

    iOS

    設定項目 挙動
    「通知の許可」 OFF
    「お知らせを受信する」 ON

     

    Android

    設定項目 挙動
    「通知の表示」 ON
    「お知らせを受信する」 OFF

     

    初回起動時のプッシュ通知の許諾ダイアログを非表示(SKIP)にした場合の挙動について

    初回起動時のプッシュ通知の許可ダイアログをSKIPした場合、SDKの設定項目がどのように設定されるかまとめました。

    iOS

    iOSに関しては、仕様上許諾ダイアログを非表示にすることはできません。
    任意で表示されるタイミングを変更することはできますが、Androidのようにスキップすることは不可となります。

     

    Android

    ※許諾ダイアログの非表示については、POPINFO_SKIP_PUSH_AGREEMENTをtrueとした場合です

    設定項目 挙動 補足
    「お知らせを受信する」 ON ・push_enabledが自動でtrueとなる
    ・エンドユーザは「お知らせを受信する」を後から変更可能
    ・エンドユーザはOSの設定画面で「通知の表示」を後から変更可能

     

    「お知らせを受信する」の項目を非表示とする場合

    「お知らせを受信する」の設定項目自体を非表示とする対応をまとめました。

    _________.png

    注意:
    設定項目自体を非表示とするため、既存ユーザーが後から設定変更出来なくなります。

    新規インストールユーザーに関しては「お知らせを受信する」がONに設定されるため、
    Androidに関しては通知が常に送られてしまう状態になります。
    十分にご検討した上でご利用ください。

     

    iOS

    対応方法 挙動
    Settings.bundle > Root.plist ファイルから、項目を削除。
    設定に関する項目は Settings.bundle > ja.lproj > Root.stringsを参照。
    ・初回インストール時の許諾ダイアログはOSから表示される
    ・「お知らせを受信する」がONに設定される
    ・エンドユーザは「お知らせを受信する」を後から変更不可
    ・エンドユーザは「通知を許可」を後から変更可能

     

    Android

    対応方法 挙動
    組み込みガイドのファイル構成にある「FANSHIP 設定画面」を参照。
    popinfo_settings.xmlファイルの
    <!-- お知らせ受信の設定 --> について非表示にする。
    ・エンドユーザは「お知らせを受信する」を後から変更不可
     ※既存がONの人はON、OFFの人はOFFのまま
     ※新規インストールの人はON
    ・エンドユーザは「通知を表示」を後から変更可能

     

    「位置情報を送信する」の項目を非表示とする場合

    「位置情報を送信する」の設定項目自体を非表示とする対応をまとめました。

    _________.png

    注意:
    設定項目自体を非表示とするため、既存ユーザーが後から設定変更出来なくなります。

    十分にご検討した上でご利用ください。

     

    iOS

    対応方法 挙動
    Settings.bundle > Root.plist ファイルから、
    「位置情報を送信する」に関する項目(Item2, Item3, Item4)を削除。
    設定に関する項目は Settings.bundle > ja.lproj > Root.stringsを参照。
    ・非表示にした項目をエンドユーザが後から変更不可
     ※既存がONの人はON、OFFの人はOFFのまま

     

    Android

    対応方法 挙動
    組み込みガイドのファイル構成にある「FANSHIP 設定画面」を参照。
    popinfo_settings.xmlファイルの位置情報に関する箇所を非表示にする
    ・非表示にした項目をエンドユーザが後から変更不可
     ※既存がONの人はON、OFFの人はOFFのまま

     

    「位置情報精度」の項目を非表示とする場合

    「位置情報精度」の設定項目自体を非表示とする対応をまとめました。

    ______.png

    注意:
    設定項目自体を非表示とするため、既存ユーザーが後から設定変更出来なくなります。

    十分にご検討した上でご利用ください。

     

    iOS

    対応方法 挙動
    Settings.bundle > Root.plist ファイルから、
    位置情報精度に関する項目(Item5)を削除。
    設定に関する項目は Settings.bundle > ja.lproj > Root.stringsを参照。
    ・非表示にした項目をエンドユーザが後から変更不可
     ※既存が高の人は高、低の人は低のまま

     

    Android

    Androidは「位置情報精度」の項目を保持しておりません

     

  • 属性アンケートを任意のタイミングで表示させることはできますか?

    属性アンケート画面は、インストール直後以外でも任意のタイミングで表示ができます。
    以下、各SDKの組込みガイドをご確認いただければと思います。

     

    組み込みガイド > 各種機能 > ユーザー属性
    https://support.fanship.jp/hc/ja/articles/360026570534

    表示させたいタイミングで以下のメソッドを呼び出してください。

     

    ◆Android

    boolean ret = PopinfoUiUtils.showSegmentSettings(this);
    // this はContext

     

    ◆iOS

    let segmentVC = PopinfoSegmentSettingsViewController(nibName:"PopinfoSegmentSettingsViewController", bundle:Bundle.main)
    segmentVC.delegate = self;

    どうぞよろしくお願いいたします。

  • 配信をカテゴライズする実装方法について

    お知らせ取得に関するメソッドを利用し、Listを取得してください。
    その後、カテゴリを判定し、表示の振り分けを行うことでカテゴリごとにお知らせの表示が可能となります。

    メソッドの詳細はSDK 同梱の以下資料を参照してください。
    ・Android:popinfo_javadoc
    ・iOS:document

     

    実装方法

    【Android】
    アプリ内に保存されているお知らせデータを取得する
    対象クラス:PopinfoUtils

    サーバーからお知らせデータを取得する場合は、以下クラスのお知らせ取得に関するメソッドを利用したあと、上記クラスのお知らせ取得に関するメソッドを実行してください。
    対象クラス:PopinfoUtilsAsync

     

    【iOS】
    アプリ内に保存されているお知らせデータを取得する
    対象クラス:PopinfoListBaseViewController

    サーバーからお知らせデータを取得する場合は、以下クラスのお知らせ取得に関するメソッドを利用したあと、上記クラスのお知らせ取得に関するメソッドを実行してください。
    対象クラス:PopinfoReceiver

     

    その他

    未読に関するお知らせの取得は下記リンクもご参考ください。
    https://support.fanship.jp/hc/ja/articles/4402909254681

  • Flutter に対応していますか?

    動作保証について

    メジャーバージョンで動作保証しております。

     

    サポートについて

    Flutter 領域はサポート対象外となりますが、FANSHIP SDK 領域はサポート対象となります。
    お問い合わせや不具合の対応などはサポートを行っております。
    お問い合わせ時は「Flutterを利用している」旨添えていただけると対応がスムーズです。

     

    Flutter 領域について

    Flutter 領域のサポートに関しては、FANSHIP領域外となります。
    別途ご契約の上、エンジニアサポート・保守対応のご相談は承っております。
    営業担当までお問い合わせください。

     

    プラグインやドキュメントの公開について

    Flutter 領域のため、公開しておりません。

  • FANSHIP SDK 8.0.0以上にアップデートしたらプッシュ通知が開封できなくなりました

    FANSHIPでは、Android OS 12の対応として、
    FANSHIP SDK 8.0.0 にてプッシュ通知タップ時の内部処理フロー(PopinfoNotificationDispatcher アクティビティ)を追加しました。

    特にカスタマイズをしていなければ、プッシュ通知が開封できないといった事象は起きませんが、
    アクティビティの状態から分岐する処理などを独自に実装されている場合は、プッシュ通知タップ時も想定通り動作するかご確認ください。

     

    想定通りに動作しない場合は、以下の方法で解決する場合がございますのでお試しください。
    1. アプリ側の AndroidManifest.xml ファイルに tools を追加する

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp"
    xmlns:tools="http://schemas.android.com/tools">


    2. アプリ側の AndroidManifest.xmlファイルに以下を追記する

    <!-- カスタマイズ Dispatcher クラス定義-->
    <activity
    android:name="jp.iridge.popinfo.sdk.baseui.PopinfoNotificationDispatcher"
    android:screenOrientation="behind"
    android:launchMode="singleInstance"
    android:taskAffinity=""
    android:excludeFromRecents="true"
    android:exported="false"
    android:theme="@style/PopinfoTransparent"
    tools:node="replace" />