React-native-onesignal: Los eventos onOpened/onReceived no se activan en Android

Creado en 9 jul. 2018  ·  35Comentarios  ·  Fuente: OneSignal/react-native-onesignal

Descripción:
Hola a todos. Tengo problemas con los eventos onOpened/onReceived en Android. El comportamiento es diferente en el emulador y en un dispositivo real, pero en ambos casos se entrega el mensaje push exacto.

En el emulador:

  1. Primer plano: se invoca el evento onReceived, onOpened se invoca solo cuando se presiona push (correcto)
  2. Fondo activo - ninguno disparado en absoluto (incorrecto)
  3. Fondo inactivo (la aplicación está cerrada): onOpened se invoca solo cuando se toca push (correcto)

En un dispositivo real:

  1. Primer plano: ninguno disparó (incorrecto)
  2. Fondo activo - ninguno disparado en absoluto (incorrecto)
  3. Fondo inactivo (la aplicación está cerrada): onOpened se invoca solo cuando se toca push (correcto)

Ambiente

  1. reaccionar-nativo-una señal: "3.2.4"
  2. reaccionar nativo: "0.50.4"
  3. compileSdkVersion: "27"
  4. buildToolsVersión: "27.0.3"
  5. gradle: "4.1"

Pasos para reproducir el problema:
No puedo proporcionar pasos para reproducir debido a la política de confidencialidad de mi empresa.

Algo más:
android/build.gradle

```// Archivo de compilación de nivel superior donde puede agregar opciones de configuración comunes a todos los subproyectos/módulos.

script de compilación {
repositorios {
jcenter()
Google()
}
dependencias {
ruta de clase 'com.android.tools. construir:gradle :3.0.1'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}

todos los proyectos {
repositorios {
maven { url " https://jitpack.io " } // utilizado para MPAndroidChart
mavenLocal()
Google()
jcenter()
experto {
// Todo React Native (JS, fuentes Obj-C, binarios de Android) se instala desde npm
url "$rootDir/../node_modules/react-native/android"
}
}
}

`android/app/build.gradle`

aplicar complemento: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
aplicar complemento: "com.android.application"

importar com.android.build.OutputFile

script de compilación {
repositorios {
maven { url ' https://plugins.gradle.org/m2/ ' } // Portal de complementos de Gradle
}
dependencias {
classpath 'gradle.plugin.com. onesignal:onesignal-gradle-plugin :[0.10.0, 0.99.99]'
}
}

aplicar complemento: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

/**

  • El archivo react.gradle registra una tarea para cada variante de compilación (por ejemplo, bundleDebugJsAndAssets
  • y paqueteReleaseJsAndAssets).
  • Estos básicamente llaman a react-native bundle con los argumentos correctos durante la compilación de Android
  • ciclo. De forma predeterminada, se omite bundleDebugJsAndAssets, ya que en el modo de depuración/desarrollo preferimos cargar el
  • paquete directamente desde el servidor de desarrollo. A continuación puedes ver todas las configuraciones posibles
  • y sus valores predeterminados. Si decide agregar un bloque de configuración, asegúrese de agregarlo antes del
  • apply from: "../../node_modules/react-native/react.gradle" línea.
    *
  • proyecto.ext.reaccionar = [
  • // el nombre del archivo de activos generado que contiene su paquete JS
  • paqueteAssetName: "index.android.bundle",
    *
  • // el archivo de entrada para la generación de paquetes
  • archivo de entrada: "index.android.js",
    *
  • // si empaquetar JS y activos en modo de depuración
  • paquete en depuración: falso,
    *
  • // si agrupar JS y activos en modo de lanzamiento
  • paquete en liberación: verdadero,
    *
  • // si agrupar JS y activos en otra variante de compilación (si está configurada).
  • // Ver http://tools.android.com/tech-docs/new-build-system/user-guide#TOC -Build-Variants
  • // La propiedad de configuración puede tener los siguientes formatos
  • // 'paqueteEn${productFlavor}${buildType}'
  • // 'paqueteEn${tipoConstrucción}'
  • // paqueteInFreeDebug: verdadero,
  • // paqueteInPaidRelease: verdadero,
  • // paqueteEnBeta: verdadero,
    *
  • // si deshabilitar el modo de desarrollo en variantes de compilación personalizadas (de manera predeterminada, solo deshabilitado en la versión)
  • // por ejemplo: para deshabilitar el modo de desarrollo en el tipo de compilación de ensayo (si está configurado)
  • devDisabledInStaging: verdadero,
  • // La propiedad de configuración puede tener los siguientes formatos
  • // 'dispositivoDisabledIn${productFlavor}${buildType}'
  • // 'dispositivoDisabledIn${buildType}'
    *
  • // la raíz de su proyecto, es decir, donde vive "paquete.json"
  • raíz: "../../",
    *
  • // dónde poner el activo del paquete JS en modo de depuración
  • jsBundleDirDebug: "$buildDir/intermedios/activos/depuración",
    *
  • // dónde poner el activo del paquete JS en modo de lanzamiento
  • jsBundleDirRelease: "$buildDir/intermedios/activos/lanzamiento",
    *
  • // dónde colocar los recursos extraíbles / activos nativos de React, por ejemplo, los que usa a través de
  • // require('./image.png')), en modo de depuración
  • resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
    *
  • // dónde colocar los recursos extraíbles / activos nativos de React, por ejemplo, los que usa a través de
  • // require('./image.png')), en modo lanzamiento
  • resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
    *
  • // de forma predeterminada, las tareas de Gradle se omiten si ninguno de los archivos o activos JS cambia; esto significa
  • // que no miramos archivos en android/ o ios/ para determinar si las tareas están a la altura
  • // fecha; si tiene otras carpetas que desea ignorar por razones de rendimiento (gradle
  • // indexa todo el árbol), agréguelos aquí. Alternativamente, si tiene archivos JS en android/
  • // por ejemplo, es posible que desee eliminarlo de aquí.
  • entradaExcluye: ["android/ ", "ios/ "],
    *
  • // anular qué nodo se llama y con qué argumentos adicionales
  • nodeExecutableAndArgs: ["nodo"],
    *
  • // proporciona argumentos adicionales al empaquetador
  • extraPackagerArgs: []
  • ]
    */

proyecto.ext.reaccionar = [
clipPath: "node_modules/haul/bin/cli.js"
]

aplicar desde: "../../node_modules/react-native/react.gradle"

/**

  • Establézcalo en verdadero para crear dos APK separados en lugar de uno:

    • Un APK que solo funciona en dispositivos ARM


    • Un APK que solo funciona en dispositivos x86

  • La ventaja es que el tamaño del APK se reduce en unos 4 MB.
  • Sube todos los APK a Play Store y la gente los descargará
  • la correcta en función de la arquitectura de la CPU de su dispositivo.
    */
    def enableSeparateBuildPerCPUArchitecture = falso

/**

  • Ejecute Proguard para reducir el código de bytes de Java en las versiones de lanzamiento.
    */
    def enableProguardInReleaseBuilds = falso

androide {
compileSdkVersión 27
buildToolsVersión "27.0.3"

defaultConfig {
    applicationId "com.binomysteryshopper"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    vectorDrawables.useSupportLibrary = true
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}
signingConfigs {
      release {
          if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
              storeFile file(MYAPP_RELEASE_STORE_FILE)
              storePassword MYAPP_RELEASE_STORE_PASSWORD
              keyAlias MYAPP_RELEASE_KEY_ALIAS
              keyPassword MYAPP_RELEASE_KEY_PASSWORD
          }
      }
  }
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a", "x86"
    }
}
buildTypes {
    release {
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        signingConfig signingConfigs.release
    }
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
        def versionCodes = ["armeabi-v7a":1, "x86":2]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }
    }
}

}

dependencias {
compilar (proyecto(':reaccionar-nativo-onesignal')){
excluir grupo: "com.google.android.gms"
}
compilar ("com.google.android.gms:play-services-base:12.0.1") {
fuerza = verdadero;
}
compilar proyecto(':reaccionar-sonido-nativo')
compilar proyecto(':reaccionar-audio-nativo')
proyecto de compilación (': reaccionar-native-fetch-blob')
compilar proyecto(':react-native-fs')
compilar proyecto(':react-native-geocoder')
proyecto de compilación (': reaccionar-native-image-crop-picker')
compile project(':react-native-version-check')
compilar proyecto(':react-native-charts-wrapper')
compilar proyecto(':react-native-spinkit')
compilar proyecto(':react-native-svg')
compilar proyecto(':react-native-maps')
compile fileTree(dir: "libs", include: ["*.jar"])
compilar "com.android. soporte: appcompat-v7 : 23.0.1"
compile "com.facebook. react:react-native :+" // Desde node_modules
}

// Ejecute esto una vez para poder ejecutar la aplicación con BUCK
// pone todas las dependencias de compilación en la carpeta libs para que las use BUCK
tarea copyDownloadableDepsToLibs(tipo: Copiar) {
de configuraciones. compilar
en 'libs'
}

`android/app/src/main/java/com/binomysteryshopper/MainApplication.java`

paquete com.binomysteryshopper;

importar android.app.Aplicación;

importar com.facebook.react.ReactApplication;
importar com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
importar com.zmxv.RNSound.RNSoundPackage;
importar com.rnim.rn.audio.ReactNativeAudioPackage;
importar com.RNFetchBlob.RNFetchBlobPackage;
importar com.rnfs.RNFSPackage;
importar com.reactnative.ivpusic.imagepicker.PickerPackage;
importar io.xogus.reactnative.versioncheck.RNVersionCheckPackage;
importar com.github.wuxudong.rncharts.MPAndroidChartPackage;
importar com.react.rnspinkit.RNSpinkitPackage;
importar com.horrocrux.svg.SvgPackage;
importar com.facebook.react.ReactNativeHost;
importar com.facebook.react.ReactPackage;
importar com.facebook.react.shell.MainReactPackage;
importar com.devfd.RNGeocoder.RNGeocoderPackage;
importar com.facebook.soloader.SoLoader;
importar com.airbnb.android.react.maps.MapsPackage;

importar java.util.Arrays;
importar java.util.List;

clase pública MainApplication extiende la aplicación implementa ReactApplication {

privado final ReactNativeHost mReactNativeHost = nuevo ReactNativeHost (esto) {
@Anular
booleano público getUseDeveloperSupport() {
devuelve BuildConfig.DEBUG;
}

<strong i="13">@Override</strong>
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
        new ReactNativeOneSignalPackage(),
        new RNSoundPackage(),
        new ReactNativeAudioPackage(),
        new RNFetchBlobPackage(),
        new RNFSPackage(),
        new PickerPackage(),
        new RNVersionCheckPackage(),
        new MPAndroidChartPackage(),
        new RNSpinkitPackage(),
        new RNGeocoderPackage(),
        new SvgPackage(),
        new MapsPackage()
  );
}

<strong i="14">@Override</strong>
protected String getJSMainModuleName() {
  return "index";
}

};

@Anular
público ReactNativeHost getReactNativeHost() {
devolver mReactNativeHost;
}

@Anular
vacío público onCreate () {
super.onCreate();
SoLoader.init(this, /* exopaquete nativo */ false);
}
}

`AndroidManifest.xml`

paquete="com.binomysteryshopper">









android:minSdkVersion="16"
android:targetSdkVersion="22" />

android:name=".AplicaciónPrincipal"
Android: permitir copia de seguridad = "verdadero"
android:etiqueta="@cadena/nombre_aplicación"
android:icono="@mipmap/ic_launcher"
Android: gran montón = "verdadero"
android:tema="@estilo/AppTheme">

<activity
  android:name=".MainActivity"
  android:launchMode="singleTop"
  android:label="@string/app_name"
  android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
  android:screenOrientation="portrait"
  android:windowSoftInputMode="adjustResize"
  android:theme="@style/AppTheme">
    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="binoshopper" />
    </intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />


`my OneSignal init`

componenteMontará() {
OneSignal.init(ONESIGNAL_APP_ID, {
kOSSettingsKeyAutoPrompt: verdadero,
kOSSettingsKeyInAppLaunchURL: falso,
kOSSSettingsKeyPromptBeforeOpeningPushURL: verdadero,
})
OneSignal.inFocusDisplaying(2)

OneSignal.addEventListener('received', this.onPushNotificationReceived)
OneSignal.addEventListener('opened', this.onPushNotificationOpened)

}

componenteSeDesmontará() {
OneSignal.removeEventListener('recibido', this.onPushNotificationReceived)
OneSignal.removeEventListener('abierto', this.onPushNotificationOpened)
}

onPushNotificationReceived(notificación) {
Alert.alert('onReceived') // para pruebas en dispositivo real
}

onPushNotificationOpened(resultadoabierto) {
Alert.alert('onOpened') // para pruebas en dispositivo real
}
```

Comentario más útil

@sofianegargouri Aquí está el PR: https://github.com/geektimecoil/react-native-onesignal/pull/592

Lanzaremos una actualización mañana o pasado.

Todos 35 comentarios

En iOS funciona perfecto. Desafortunadamente, no puedo proporcionar registros de logcat de Android porque no tengo un dispositivo real. Estaba probando en el dispositivo de mi amigo lejano debido a TeamViewer.

También intenté OneSignal.setLogLevel(0, 6) en un dispositivo real. Pero no se encontraron errores, todas las solicitudes tuvieron éxito, solo los eventos no se activaron.

Hola @Ble3k , recientemente hemos estado bastante ocupados trabajando en un nuevo SDK de Flutter y aún no hemos tenido tiempo de investigar su problema, sin embargo, lo investigaré mañana y me pondré en contacto con usted en breve, ¡disculpe la demora!

Hola,

Solo quería decir que veo el mismo comportamiento en 3.2.5 en un dispositivo de desarrollo. Extraño porque no he cambiado nada recientemente y estoy bastante seguro de que funcionó hace algunos días, ya que mis impulsos enfocados se muestran como brindis en la aplicación. Recuerdo haberlos probado y estaba funcionando.

No investigaré más porque decidimos pasar a las notificaciones automáticas normales incluso cuando la aplicación está enfocada.

@ Nightsd01 Gracias, esperaré su investigación.

En Android con retraso en la recepción de notificaciones, probado en mi teléfono Android y recibido notificación después de 30-40 minutos, probado varias veces

¿Algún avance en esto? Tengo el mismo problema en un dispositivo Android (Samsung Galaxy S7).

No se activa ninguno de los eventos onOpened o onReceived; sin embargo, se recibe la notificación. Necesitamos poder llevar al usuario a una pantalla específica cuando se activa el evento onOpened.

¿Alguien tiene problemas con los eventos (recibidos, abiertos) que no se disparan después de recargar la aplicación nativa de Android reaccionando presionando dos veces R, o usando el paquete react-native-restart?

@ackosumane De hecho, uso Expo y Updates.reload() con mucha frecuencia en mi flujo de trabajo de desarrollo.

Y tienes razón:

  • Puedo hacer que se activen las devoluciones de llamada en el primer inicio de la aplicación
  • No veo las devoluciones de llamada disparadas después de la primera recarga de la aplicación

@ Nightsd01 Por lo tanto, parece que la integración de OneSignal RN con Android actualmente no admite recargas de aplicaciones muy bien. No es tan impactante como pensaba, ya que la mayoría de las veces el usuario no vuelve a cargar la aplicación, pero hay casos de producción en los que queremos que el usuario vuelva a cargar la aplicación (¿actualizaciones OverTheAir como Expo/CodePush o cierre de sesión del usuario?). En esos casos sería genial que después de una recarga no se rompieran los push ;)

@ Nightsd01 Hola, ¿alguna novedad?

Hola, también enfrento el mismo problema. ¿Alguna solución para esto?

Como actualización de este problema: ¡planeamos solucionarlo en la próxima actualización!

@ Nightsd01 ¿ Alguna fecha? ¿Hay una rama que podamos bifurcar con la corrección?

@sofianegargouri Aquí está el PR: https://github.com/geektimecoil/react-native-onesignal/pull/592

Lanzaremos una actualización mañana o pasado.

gracias @ Nightsd01 , este problema se puede cerrar, supongo

¿Puedes publicar una nueva versión de npm con la solución, por favor?

Para cualquiera que se haya quedado con este problema, el código del maestro funciona bien ahora.

Solo ejecuta lo siguiente:

npm instala git+ https://github.com/geektimecoil/react-native-onesignal#master --save

@ eabuslaiman30 Aún enfrenta un problema. Estoy usando git+ https://github.com/geektimecoil/react-native-onesignal#master como mencionaste anteriormente. Todavía ninguno de los eventos se activa en Android. ¿Alguien puede sugerir qué última versión es estable? Anteriormente estaba usando la versión 3.0.5 que funcionaba bien, excepto que la aplicación se desactiva y no se recibe la notificación en Android 8.0 (Oreo). Para solucionar ese problema, actualicé a la última versión y recibo este error.

@ eabuslaiman30 @ Nightsd01 También probé y me gusta @shahchaitanya Todavía enfrento el problema.

Hice un PR que parece arreglar que los oyentes no se vuelvan a suscribir: https://github.com/geektimecoil/react-native-onesignal/pull/593

@shahchaitanya puede editar el código Java del proyecto local con este pequeño cambio y esto debería resolver su problema temporalmente.

Hola , @slorber. Tu solución desencadena el método onOpened y onReceived. ¿Pero el evento onIds aún no se ha activado? ¿Verificó que el evento onIds se activa o no en su código? Estaba pensando en seguir con la versión 3.0.5 de react-native-onesignal hasta que la última versión se estabilice.

Acabo de probar y las 3 devoluciones de llamada se activan al reiniciar la aplicación para mí, comenzando con onIds.

Incluso si onIds no se activara, no sería un gran problema para mí, ya que es poco probable que las identificaciones cambien entre reinicios y ya se han enviado a mi servidor.

@slorber Para mí, es un gran problema si onIds no se activa al reiniciar una aplicación. Guardo idToken en almacenamiento local y backend también. Al cerrar sesión, lo eliminé del backend y, de alguna manera, si el usuario borra el almacenamiento local, entonces, ¿cómo puedo obtener el idToken de un usuario si onIds no se activó cada vez? En la versión anterior hasta la 3.2.0 (Actualización principal), onIds se activa cada vez que se reinicia una aplicación.

Hola chicos @slorber @shahchaitanya. Déjame copiar algo de mi código de implementación, tal vez te ayude (necesitaba agregar algunas líneas de código que no eran necesarias con una versión anterior).

OneSignal.init('YOUR_APP_ID');
OneSignal.addEventListener('ids', this.onIds);
OneSignal.configure();

Por ejemplo, no estaba usando la función "init" en versiones anteriores ya que aparentemente la inicialización se hacía desde el código Java.

Además, estoy usando npm install git+https://github.com/geektimecoil/react-native-onesignal\#master --save como dependencia y recibo tres eventos correctamente (onIds, recibido, abierto).

También estoy usando init y configure y recuerdo que hubo un problema con los identificadores que no se activaban cuando no se llamaba a configure

    OneSignal.init(OneSignalAppId, OneSignalSettings);
    OneSignal.addEventListener('received', onReceived);
    OneSignal.addEventListener('opened', onOpened);
    OneSignal.addEventListener('ids', onIds);
    // Quickfix for ids event not firing!
    // See https://github.com/geektimecoil/react-native-onesignal/issues/200#issuecomment-288579373
    OneSignal.configure();
    OneSignal.inFocusDisplaying(inFocusDisplaying);
    OneSignal.setSubscription(true);
    OneSignal.syncHashedEmail(email);
    OneSignal.sendTags(tags);

@slorber @eabuslaiman30 Ahora funciona bien. No agregué OneSignal.configure(). Anteriormente no lo necesitaba para activar el oyente onIds. Hola , @slorber, ahora no necesito agregar ese parche que mencionaste anteriormente. La solución @ eabuslaiman30 funciona absolutamente bien.

Perfecto @shahchaitanya , ¡me alegro de que haya funcionado!

Pronto publicaremos un lanzamiento oficial que incluirá esta solución.

Recientemente solucioné un problema algo importante con el SDK de Android, por lo que estoy esperando que se revisen las relaciones públicas antes de lanzar una actualización oficial nativa de reacción.

¡Gracias por su paciencia a todos! Mientras tanto, simplemente puede usar master

@shahchaitanya el evento ids está destinado a simplemente activarse cada vez que cambie la identificación del usuario o el token de inserción con OneSignal. Si no cambiaron desde la última vez que usaron su aplicación, los eventos no se activarán de forma predeterminada.

Este es un código heredado confuso, tengo la intención de refactorizarlo en la próxima versión principal para que sea mucho más intuitivo.

Puede forzarlos a disparar llamando a configure() , pero no lo recomendaría. Una solución más elegante es llamar a OneSignal.getPermissionSubscriptionState() que contendrá la ID de OneSignal del usuario.

El problema ahora debería solucionarse en 3.2.6 (junto con varias otras cosas). ¡Gracias por su paciencia a todos!

¡Hola! Todavía tengo este problema en Android (no completamente verificado en iOS).

  • Aplicación enfocada: el evento abierto se activa correctamente
  • Aplicación descartada: el evento abierto se activa correctamente
  • Aplicación en segundo plano: el evento abierto nunca se activa

Estoy en la versión 3.2.6 y la configuración de mi detector de eventos es...

componentDidMount() {

        OneSignal.init(APP_ID, { kOSSettingsKeyAutoPrompt: true });

        OneSignal.addEventListener('ids', this.onIds);

        OneSignal.addEventListener('opened', (result) => alert('text'));

        OneSignal.inFocusDisplaying(2);

        // OneSignal.setLogLevel(0, 6);

        OneSignal.configure();
}

componentWillUnmount() {
    OneSignal.removeEventListener('ids', this.onIds);
    OneSignal.removeEventListener('opened', (result) => alert('text'));
}

@joefazz No puedo reproducir su problema, ¿puede intentar ejecutar yarn remove react-native onesignal y yarn add react-native-onesignal solo para asegurarse de que esté actualizado a 3.2.6? Si es así reabriré el tema.

¿El problema le sucede el 100% del tiempo?

¿Puedes reproducir este problema en nuestro proyecto de demostración?

Ocurre el 100% del tiempo y aún ocurre después de quitar y leer.

Intentaré reproducir más tarde hoy y editaré este comentario con mis hallazgos.

No sé cuán relevante es, pero en el proyecto en el que estoy trabajando estábamos en la versión 3.0.9 y la actualizamos hasta la 3.2.6. Ejecuté react-native unlink y luego volví a vincular, actualicé iOS manualmente y eliminé toda la inicialización nativa para usar el método OneSignal.init().

EDITAR: No estoy seguro de lo que sucedió, pero ahora funciona el 100 % del tiempo en Android, gracias por su ayuda, lamento comentar sobre un problema cerrado 😅

Si alguien vuelve a ver este problema en 3.2.6 o superior, no dude en abrir un nuevo problema.

@joefazz ¡ Me alegra escucharlo! Solucioné el problema que causó el problema inicial, pero es muy posible que haya algún tipo de condición de carrera. Si vuelve a ver este problema, no dude en abrir un nuevo problema

En mi aplicación, la nueva versión soluciona mis problemas y no veo el comportamiento informado por @joefazz

Hola a todos, tengo el mismo problema OneSignal.addEventListener('opened', (result) => console.log(result)); no se dispara desde el segundo lanzamiento de la aplicación. En un modo de fondo, la primera notificación es un evento 'abierto', elimine la aplicación => obtenga la notificación => 'abierto' nunca volverá a dispararse.

solo android - versión 8
solo después de la segunda notificación cuando la aplicación estaba en segundo plano
reaccionar-nativo-una señal - 3.9.1

Estoy teniendo el mismo problema. abierto no llama cuando la aplicación está en segundo plano, ¿hay alguna solución?

@kostiantyn-solianyk @shrolr ,
Entonces, para resumir, el evento 'abierto' no se activa la segunda vez que se abre la aplicación en Android 8.

Los eventos tradicionales quedarán obsoletos en el próximo lanzamiento principal (ahora en Beta). Recomiendo migrar a la versión beta e intentar reproducir el problema.

Si el problema persiste, háganoslo saber abriendo un nuevo problema.

Salud

¿Fue útil esta página
0 / 5 - 0 calificaciones