Плагин NativeScript для Firebase не регистрируется в Adobe Mobile Services - PullRequest
0 голосов
/ 18 сентября 2018

Я работаю над мобильным приложением NativeScript, в котором я использую nativescript-plugin-firebase для получения токена Firebase, который я затем отправляю в Adobe Mobile Services, чтобы можно было отправлять push-уведомления оттуда пользователямобе платформы (Android и iOS):

FirebasePlugin.init({
    onMessageReceivedCallback: () => { ... },
    onPushTokenReceivedCallback: (token: string) => {
        AdobeAnalytics.getInstance().optIn();
        AdobeAnalytics.getInstance().setPushIdentifier(isAndroid ? token : new NSData({ base64Encoding: token }));
    }
});

Это прекрасно работает на Android, где я могу затем отправлять уведомления из AMS на отдельные устройства с помощью токена или на несколько с использованием сегментов AMS.

Однако в iOS он работает только с использованием токена, поскольку AMS считает, что устройства iOS не зарегистрированы.Запросы, вызванные setPushIdentifier, возвращают 200 OK и что-то подобное на обеих платформах:

{
    "d_blob": "...",
    "d_mid": "...",
    "d_ottl": 7200,
    "dcs_region": 6,
    "ibs": [],
    "id_sync_ttl": 604800,
    "subdomain": "mysandbox",
    "tid": "..."
}

Я использую модифицированную версию nativescript-adobe-marketing-cloud 1.5.0, которая выставляет это setPushIdentifier, но реализация не меняется.

Я также пытался заменить nativescript-plugin-firebase на push-plugin, и в этом случае я получаю токен APN при использовании iOS вместоFirebase one:

PushPlugin.init({
    onMessageReceivedCallback: () => { ... },
    onPushTokenReceivedCallback: (token: string) => {
        AdobeAnalytics.getInstance().optIn();
        AdobeAnalytics.getInstance().setPushIdentifier(isAndroid ? token : new NSData({ base64Encoding: token }));
    }
});

Но происходит то же самое.

...