Nota : este fue un error del lado del servidor y por ahora parece estar resuelto. El código de nuestra aplicación móvil permanece sin cambios.
Tengo que usar HMS Push Services para que mi aplicación RN funcione para dispositivos Huawei EMUI: HMS Core .
Seguí todos los pasos necesarios para instalar y configurar HMS tanto en el servidor como en la aplicación móvil.
Sin embargo... noté un comportamiento extraño. Uso un botón en la página web para enviar una notificación automática desde el servidor a la aplicación móvil. Me aseguré de que Push Kit esté habilitado en mi ID de Huawei y que el token de dispositivo Push sea el correcto.
A veces se envía la notificación ya veces no. Traté todo el día de encontrar la causa, pero por ahora parece ser completamente aleatorio, al menos hasta que no se encuentre la causa.
Tenga en cuenta que en el código a continuación, mc.send()
va cada vez a .then()
y nunca .catch()
.
A veces obtengo: OK {"code":"80000000","msg":"Success","requestId":"161832746491754926000107"}
y la notificación en realidad se recibe desde la aplicación móvil (¡todo bien!).
A veces (y bastante a menudo): OK {"code":"80300002","msg":"No permission to send message to these tmIDs","requestId":"161832753512250325000107"}
Por último, recibo continuamente: OK {"code":"80000000","msg":"Success","requestId":"161832795126307445060711"}
pero... la aplicación no recibe la notificación.
Intenté reiniciar el servidor, mantener la aplicación en los tres estados diferentes (cerrado, en primer plano, en segundo plano), pero nada me ayudó a encontrar el problema.
Esta es la última versión del código que uso para enviar la notificación (lo cambié muchas veces):
function sendPushNotificationHMS(pushDeviceToken, data, attempt){ hcm.init({ appId: configHMS.AppId, appSecret: configHMS.AppSecret, authUrl: configHMS.AuthUrl, pushUrl: configHMS.PushUrl }); let mc = hcm.messaging().messaging; let androidConfig = { collapse_key: -1, urgency:"HIGH", ttl: "10000s", bi_tag: "the_sample_bi_tag_for_receipt_service", } let message = { data: JSON.stringify(data), android: androidConfig, token: new Array(pushDeviceToken) }; mc.send(message, true).then(data => { console.log('OK ', data); }).catch(err => { console.log('ERR ', err); }); }
Por favor, consulte esta documentación:
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/commonerror-0000001059816656
y vea si una de las soluciones bajo 80300002 es correcta. Ya que ha verificado si sus identificaciones son correctas, consulte los consejos en 2, 4, 6 y 7.