关于react native:将FCM设备令牌发送到webview的正确方法

Proper way to send FCM device token to a webview

我有一个基于Laravel的webapp,它将通过webview显示在移动应用程序上(包括Android和iOS,都是使用react native构建的)。

我设法使用evollu/react本机FCM生成令牌。

我的问题是:将这个令牌发送到webview的正确方式是什么,这样我的webapp就可以将它与用户关联并存储在数据库中?

我的第一个想法是把它传递到WebVIEW作为一个get参数调用的URL,但是参数总是在另一边是空白的,这可能是因为令牌是异步请求的,而当WebVIEW被调用时它还没有到来。

我能做什么?


我通过在呈现方法上使用if来延迟呈现,直到令牌准备就绪,如果状态"loading"为true,则不会返回WebView;然后在获取令牌的函数中,我使用setstate将loading的值更改为false。


或者作为URL参数,或者通过postMessage。在这两种情况下,您都必须等待令牌可用。因此,当令牌可用时,加载页面或呈现WebView。或者在收到令牌后立即通过postMessage传递令牌。

建议使用postMessage方法,因为您可以同时加载页面和等待令牌。