由于RN首次启动的时候,需要加载整个bundle,再render出首页面,这个过程通常需要耗费总计几百毫秒到一两秒不等。在默认工程中,这个过程中给用户展示出的都是白色的背景,因此用户会感觉到屏幕有一小段时间的白屏,像是卡顿一样 从而影响用户体验。如果是iOS原生与RN记性混合开发,原生调到RN页面时,这种情况就更加严重。每次跳转的时候再加载,都会卡顿0.3秒,体验很差。
解决思路是需要在Appdelegate的时候将bundle加载好,不展示出来,然后跳转到RN页面的时候直接self.view addSubView,不用再加载了,以此解决闪屏问题。
点击原生按钮跳转到RN页面
解决思路
通过设置一个单例,在Appdelegate直接加载,然后在VC调用即可。
代码如下:
ViewController为原生界面,FirstViewController为加载RN界面的VC,BridgeManager为单例。
SYJ_BridegManager内部
Appdelegate内部
FirstViewController里面
结束。可以自己试一下效果。