【react native 0.49 android版本热更新】万事须己运,他得非我贤。这篇文章主要讲述react native 0.49 android版本热更新相关的知识,希望能为你提供帮助。
版本升级了,发现 老版本的 热更新 用不了,原来是 底层代码 改变了
private void onJSBundleLoadedFromServer(File file) { if (file == null || !file.exists()) { Toast.makeText(this, "no file", Toast.LENGTH_SHORT).show(); return; } // Toast.makeText(this, "Downloading complete", Toast.LENGTH_SHORT).show(); try { //JSCConfig.EMPTY.getConfigMap(); HybridData hb=new HybridData(); ReactApplication application = (ReactApplication) this; Class< ?> RIManagerClazz = application.getReactNativeHost().getReactInstanceManager().getClass(); Method method = RIManagerClazz.getDeclaredMethod("recreateReactContextInBackground", javascriptExecutorFactory.class, JSBundleLoader.class); method.setAccessible(true); method.invoke(application.getReactNativeHost().getReactInstanceManager(), new JSCjavaScriptExecutorFactory(), JSBundleLoader.createFileLoader(file.getAbsolutePath())); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }
热更新 思路就是 把 index.android.bundle 下载下来 ,然后获取 路径,传入这个文件路径到这个函数里面,然后会 调用
recreateReactContextInBackground 这个方法 重新绑定 bundle 文件
推荐阅读
- EventBus - Android's Event Bus
- call()apply()和bind()的异同
- Android 本应用数据清除管理器DataCleanManager
- XMAPP 的安装与配置
- (转)Android Studio Error:Failed to resolve: com.android.support:appcompat-v7:25.1.0解决方案
- apple 下安装mysql 以及 碰到的问题
- express--app.set
- (头条新闻)Cordova+React+OnsenUI+Redux新闻App开发实战教程
- Android 架构师|资料分享 03