コンテンツにスキップ

FANSHIP SDKのアップデートについて

旧バージョンからのアップデートを行う際に必要となる、主な共通確認事項を記載しています。

Warning

FANSHIP SDK内ファイルを直接編集している場合は、カスタマイズしたレイアウト、画面クラス、各種設定を維持できませんのでご注意ください。
独自に機能をカスタマイズしている場合につきましても、SDK内のファイルをアプリプロジェクトへコピーし編集している場合に限り、以前の状態を維持したアップデートが可能となっております。

ver.8.0.0 以降

権限の追加

ver.8.0.0 以降では、必要に応じて新たに権限の追加が必要となります。

おおよその位置の権限

位置情報(GPS、Wi-fi、iBeacon)を利用している場合、権限の追加が必要となります。
android.permission.ACCESS_COARSE_LOCATION

※この権限は targetSdkVersion に関わらず追加してください

アラームの権限

targetSdkVersion 31 以上 に対応する場合に追加してください。
android.permission.SCHEDULE_EXACT_ALARM

Bluetooth の権限

iBeacon を利用しており、 targetSdkVersion 31 以上 に対応する場合に追加してください。
android.permission.BLUETOOTH_SCAN

Bluetooth の権限追加時の注意点

targetSdkVersion 30 以下から 31 以上へアップデートを行った際、Android 12 以上の端末では Popinfo.start() をコールしたタイミングで Bluetooth の権限の許諾ダイアログが表示されます。
※オプトインダイアログを任意表示にしている場合は表示されません

この許諾ダイアログの表示では以下の点に注意が必要です。

・許諾ダイアログを閉じた際、PopinfoCallback.onOptInEnded() がコールされます

また、オプトインダイアログを任意表示にしている場合は下記のようになります。

Popinfo.startLocationOptin() をコールした際に Bluetooth の権限の許諾ダイアログが表示されます

・許諾ダイアログを閉じた際、PopinfoCallback.onLocationOptInEnded() がコールされます

PopinfoCallback を利用して対象のメソッドで処理を行っている場合はご注意ください。

位置情報の取得に関する変更

GPS を利用する設定の場合、新たに Google Play Services のライブラリが必要となりました。

また、「お知らせ設定」画面の「位置情報の取得方法」について ver 8.0.0 未満では「GPS」「Network」と別々に分かれておりましたがアップデート以降は「GPS + Network」という表記となり、取得方法に関しては一つに変更されています。

どちらか、または両方を選択していた場合、アップデート時には自動的に「GPS + Network」が選択されます。
この設定について SDK から値を取得をする際は「fused」という文字列になっております。

ライブラリの組み込みについては「こちら」をご確認ください。

ver.7.3.0 以降

アプリ内メッセージ コールバック変更

  • ver.7.3.0 で削除されたコールバック
    • onInappMessageTapAction
    • onEventActionTrigger
    • onInappMessageUpdate
  • ver.7.3.0 で追加されたコールバック
    • onInappMessageAppeared

削除されたコールバックを使用していた場合の変更方法

  • onInappMessageTapAction を使用していた場合
    • SDK に新たにアプリ内メッセージ用のクラスファイル(sdk/PopinfoInappMessageView.java)が追加されました。このクラスをカスタマイズすることで、コールバッククラスで使用してい onInappMessageTapAction をそのまま利用できます。
    • ※画面のカスタマイズ方法については「各画面のカスタマイズ」を参考にカスタマイズしてください。
  • onEventActionTrigger を使用していた場合
    • 新たに追加されたコールバック onInappMessageAppeared をご利用ください。
    • コールされるタイミングはアプリ内メッセージ表示の直前となり、false を返却することでアプリ内メッセージの表示を取りやめることができます。
  • onInappMessageUpdate を使用していた場合
    • 新たに追加されたコールバック onInappMessageAppeared をご利用ください。
    • このコールバックではアプリ内メッセージの内容を取得しております。
    • 取得したアプリ内メッセージの内容を置換することで表示される内容も置き換えることができます。

アプリ内メッセージのサンプルコードにつきましては、「こちら」をご確認ください。


ver.7.2.0 以降

オプトインダイアログ任意表示

SDK 初回起動時のオプトインダイアログを任意で表示することが可能になりました。
任意で表示をする場合、SDK 開始時のメソッド Popinfo.start(context, boolean) の引数に true を設定してください。
Popinfo.start(context) でコールした場合や、 Popinfo.start(context, boolean) の引数に false を設定した場合、ver.7.2.0 以前と同じ動作となり、オプトインダイアログが自動で表示されます。

オプトインダイアログを任意で表示する場合の変更点

  • meta-data の動作が一部変更されます。

    POPINFO_SKIP_INIT_AGREEMENT : false とした場合でも初回起動時にインフォメーションダイアログが表示されません。
    POPINFO_SKIP_PUSH_AGREEMENT : true とした場合でも初回起動時に PUSH 通知は許諾済みにはなりません。
    POPINFO_SHOW_SEGMENT_SETTINGS : true とした場合でも、初回起動時にユーザー属性設定ダイアログは表示されません。
    
  • 「インフォメーションダイアログ」「PUSH 許諾ダイアログ」「位置情報許諾ダイアログ」を任意で呼び出すことが可能となります。

    Popinfo.startInformationOptin(Activity activity)
    Popinfo.startPushOptin(activity)
    Popinfo.startLocationOptin(Activity activity)
    
    • ※このメソッドでダイアログを表示できるのは一度のみとなります。ユーザーが許諾を選択した後に再度このメソッドを呼び出してもダイアログは表示されません
    • ※位置情報許諾ダイアログは位置情報の権限の状態によってはダイアログが表示されないことがあります(システムの挙動となります。既に権限を許諾済みだった場合や、既に「次回から表示しない」設定となっていた場合は表示されません)
    • ※以前のバージョンでの初回起動を含む、自動でのオプトインダイアログ表示を終えたユーザーに対してはこのメソッドを呼び出してもダイアログは表示されません
  • 上記のダイアログ終了時のコールバックが追加されました。

    PopinfoCallback.onInformationOptInEnded(context)
    PopinfoCallback.onPushOptInEnded(context)
    PopinfoCallback.onLocationOptInEnded(context)
    

ユーザー属性 一括変更メソッド追加

ユーザー属性を一括で変更するメソッドが追加されました。
以前の 1つずつ設定する方法(PopinfoUtils.setSegments(Context, String, String[]))は非推奨となりますため、利用しております場合はユーザー属性の変更 を参考に変更してください。


ver.7.1.0 以降

フォアグラウンド位置情報利用

フォアグラウンドのみで位置情報(GPS/Wi-Fi/iBeacon)の利用を行えるようになりました。
フォアグラウンドのみで利用する場合は AndroidManifest.xmlandroid.permission.ACCESS_BACKGROUND_LOCATION 権限を削除してください。
この権限を削除している場合、SDK は OS バージョンに関係なくバックグラウンドで位置情報の取得を行わなくなります。


ver.7.0.0 以降

バックグラウンド位置情報の許諾

targetSdkVersion 30 以上で組みこんだアプリについて、Android 11 以上の端末を対象に位置情報の許諾の後に「バックグラウンド位置情報の許諾」というダイアログを表示するようにしております。
このダイアログはレイアウトとして popinfo-sdk/res/layout/popinfo_background_location_dialog.xml を使用しております。
ver.7.0.1 ではデフォルトで画像によるダイアログを表示しておりますが、文章のみの表示も可能なので必要な場合はこのファイルを編集してください。
また、このダイアログは「SDKの設定項目一覧」の POPINFO_SKIP_INIT_BACKGROUND_LOCATION で非表示にすることが可能となっております。


ver.6.0.1 以降

ヘッドアップ通知を維持する 非表示

設定画面でAndroid 10以上の場合に表示される「ヘッドアップ通知を維持する」の項目をデフォルトで非表示となるように変更しました。
こちらは機種・OS固有の問題により正常に動作しない場合があるため、使用する場合はご注意ください。


ver.6.0.0 以降

popinfo_prefs.xml 廃止

設定画面の popinfo-sdk/res/xml/popinfo_prefs.xml を廃止しました。
カスタマイズをしている場合、 popinfo-sdk/res/layout/popinfo_settings.xml をコピーして変更してください。

requestWindowFeature 削除

Popupクラスの初期化処理から requestWindowFeature を削除しました。
Popupクラスのカスタマイズをしている場合、合わせて requestWindowFeature の記述を削除してください。

通知チャンネル重要度

Android 10以上の端末でヘッドアップ通知をデフォルトで表示させるため、組み込み時の通知チャンネルの重要度を 4 に設定しています。
Android 10以上の初期値設定用として、popinfo-sdk/res/values/popinfo_values.xmlpopinfo_notification_channel_importance_q_or_higher を追加しておりますので、Android 9以下の場合と使い分けてください。
※ Notificationのカスタマイズを行っている場合は、この影響を受けません


ver.5.0.2 以降

APGバージョン引き上げ

Android Plugin for Gradleバージョンのサポート環境引き上げに伴い、お知らせ一覧レイアウト(popinfo-sdk/res/layout/popinfo_list.xml)の一部コンポーネントの ID を変更しました。

Lintエラー発生時の対応

お知らせ一覧レイアウトをカスタマイズしていてビルド時にLintエラーが出た場合は、下記の新バージョンのIDに変更してください。

[旧バージョン]
android:id="@+id/android:list"
android:id="@+id/android:empty"

[新バージョン]
android:id="@android:id/list"
android:id="@android:id/empty"

Android Plugin for Gradleバージョン毎にビルドの設定が変更されているため popinfo-sdk/src/build.gradle にはサポート範囲内の各バージョンに最適な設定がコメントアウトされておりますのでご確認ください。

初期化メソッド変更

下記の初期化メソッド2種が廃止されました。代わりに Popinfo.init(Application application) をご使用ください。

  • 廃止
    • Popinfo.registerLifecycleCallbacks(Application application)
    • Popinfo.registerPopinfoReceiver(Application application)

ver.4.x.x 以降

FCM トークン設定形式

FCMトークン はアプリモジュール側で取得して FANSHIP SDKへ設定する形式となります。
PopinfoApplicationクラスの設定方法も変更になっておりますのでご注意ください。


SDK ver.4.0.0 未満からのアップデートについて

ver.3.x.x 以前から ver.4.x.x 以上へのアッデート後は、FCMを使用したPUSH配信になります。
変更点が多いため再度手順に従い導入し直すことを推奨しておりますが、アップデートが必要な場合はサポート担当までお問合せ下さい。