如何从JS流加载(与现有应用程序集成)?不是JS Bundle文件路径

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (68)

我发现react-native load会从android的默认文件目录中反应Js,我想要一个api从流中加载反应Js,而不是文件路径。所以我可以从网络服务器加载Js,而不是将Js包文件放在本地目录中。

 String sdDir = Environment.getExternalStorageDirectory().getAbsolutePath();
    String bundleFile = sdDir + "/Download/ReactNativeDevBundle.js";
    mReactInstanceManager = ReactInstanceManager.builder()
            .setApplication(getApplication())
            .setJSBundleFile(bundleFile)
            .addPackage(new MainReactPackage())
            .setUseDeveloperSupport(false)
            .setInitialLifecycleState(LifecycleState.RESUMED)
            .build();
    mReactRootView.startReactApplication(mReactInstanceManager, "MyAwesomeApp", null);
    setContentView(mReactRootView);

库版本:react-native:0.15.0

提问于
用户回答回答于
    int lengthOfFile = connection.getContentLength();
    //            InputStream input= new BufferedInputStream(url.openStream(),lengthOfFile);
                input = connection.getInputStream();
    //            FileOutputStream 

outPut=context.openFileOutput("index.android.bundle",Context.MODE_PRIVATE);
                FileOutputStream outPut = null;
                File directory,file;

     directory = new File(context.getFilesDir(), "drawable-xxhdpi");
                        if(!directory.exists()){
                            directory.mkdir();
                        }
  file = new File(context.getFilesDir() + File.separator + "drawable-xxhdpi", "src_components_images_iconthumbsdowndefault.png");
                        outPut = new FileOutputStream(file);

      byte data[]=new byte[4096];
                long total=0;
                int x = 0;
                while ((count = input.read(data)) != -1){
                    total+=count;
                    x++;
    //                publishProgress(""+(int)((total*100)/lengthOfFile));
                    outPut.write(data,0,count);
                }
                outPut.flush();
                outPut.close();
                input.close();

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励