Note
アプリのアンインストールトラッキングはAirbridge iOS SDK
v1.13.0
以降のバージョンから利用できます。
Airbridge SDKのアンインストールトラッキング機能は、サイレントプッシュ通知を活用して実装されます。この機能を使うためには、アプリでサイレントプッシュ通知が動作するようにApp Identifierの設定及びCapabilitiesの追加、そしてサイレントプッシュ通知をアプリで受信した時、アンインストールトラッキングのための通知なら無視するというコードの追加が必要になります。
1. https://developer.apple.com/account/resources のIdentifiersに移動してください。
2. アンインストールをトラッキングしたいアプリのIdentifierをクリックし、Push Notificationsをチェックしてください。
1. https://developer.apple.com/account/resources のKeysに移動してください。
2. 使うキーを編集し、Apple Push Notification serviceをチェックしてください。
使っているキーがない場合、+ボタンをクリックして新たに生成し、p8をダウンロードしてください。
https://developer.apple.com/account/resources のIdentifiersに移動してください。
アンインストールをトラッキングしたいアプリのIdentifierをクリックしてください。
そのアプリのApp ID PrefixとBundle IDを確認できます。
https://developer.apple.com/account/resources のKeysに移動してください。
使っているKeyをクリックしてください。
そのキーのKey IDとp8を確認できます。
p8はキーを初めて生成する時のみダウンロードできます。
Xcode > Projectファイル > Signing & Capabilitiesに移動してください。
+ Capability
のボタンをクリックしてください。
Background Modes
と Push Notifications
を追加してください。
Background Modes
の Remote notifications
をチェックしてください。
アプリが起動する時、プッシュ通知を使っていなかった場合、registerForRemoteNotifications
の関数を呼び出してください。
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
{
...
UIApplication.shared.registerForRemoteNotifications()
...
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[UIApplication.sharedApplication registerForRemoteNotifications];
return YES;
}
APNSプッシュトークンが生成されたら、そのトークンをregisterPushTokenの関数を呼び出してSDKに渡してください。
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
AirBridge.registerPushToken(deviceToken)
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[AirBridge registerPushToken:deviceToken];
}
アンインストールトラッキング用のサイレントプッシュ通知を受信した時、その通知を無視するよう、以下のように設定してください。
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
{
if userInfo["airbridge-uninstall-tracking"] as? Bool == true {
return;
}
...
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
if ([userInfo[@"airbridge-uninstall-tracking"] boolValue] == YES) {
return;
}
...
}
MorpheusプッシュSDKトラブルシューティングガイド: 追って提供する予定です。
このページは役に立ちましたか?
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
AirBridge.registerPushToken(deviceToken)
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[AirBridge registerPushToken:deviceToken];
}
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
{
if userInfo["airbridge-uninstall-tracking"] as? Bool == true {
return;
}
...
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
if ([userInfo[@"airbridge-uninstall-tracking"] boolValue] == YES) {
return;
}
...
}