mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-10 22:47:58 +08:00
Recognise and run BC bundles
Reviewed By: javache Differential Revision: D4067425 fbshipit-source-id: fade9adebfa8a59dc49aeadfd01a782f7b686082
This commit is contained in:
committed by
Facebook Github Bot
parent
94711bfb06
commit
16290851aa
@@ -9,7 +9,40 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
extern uint32_t const RCTRAMBundleMagicNumber;
|
||||
#import "RCTDefines.h"
|
||||
|
||||
/**
|
||||
* RCTScriptTag
|
||||
*
|
||||
* Scripts given to the JS Executors to run could be in any of the following
|
||||
* formats. They are tagged so the executor knows how to run them.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger) {
|
||||
RCTScriptString = 0,
|
||||
RCTScriptRAMBundle,
|
||||
RCTScriptBCBundle,
|
||||
} RCTScriptTag;
|
||||
|
||||
/**
|
||||
* RCTMagicNumber
|
||||
*
|
||||
* RAM bundles and BC bundles begin with magic numbers. For RAM bundles this is
|
||||
* 4 bytes, for BC bundles this is 8 bytes. This structure holds the first 8
|
||||
* bytes from a bundle in a way that gives access to that information.
|
||||
*/
|
||||
typedef union {
|
||||
uint64_t allBytes;
|
||||
uint32_t first4;
|
||||
uint64_t first8;
|
||||
} RCTMagicNumber;
|
||||
|
||||
/**
|
||||
* RCTParseMagicNumber
|
||||
*
|
||||
* Takes the first 8 bytes of a bundle, and returns a tag describing the
|
||||
* bundle's format.
|
||||
*/
|
||||
RCT_EXTERN RCTScriptTag RCTParseMagicNumber(RCTMagicNumber magic);
|
||||
|
||||
extern NSString *const RCTJavaScriptLoaderErrorDomain;
|
||||
|
||||
@@ -42,7 +75,7 @@ typedef void (^RCTSourceLoadBlock)(NSError *error, NSData *source, int64_t sourc
|
||||
* @experimental
|
||||
* Attempts to synchronously load the script at the given URL. The following two conditions must be met:
|
||||
* 1. It must be a file URL.
|
||||
* 2. It must point to a RAM bundle.
|
||||
* 2. It must not point to a text/javascript file.
|
||||
* If the URL does not meet those conditions, this method will return nil and supply an error with the domain
|
||||
* RCTJavaScriptLoaderErrorDomain and the code RCTJavaScriptLoaderErrorCannotBeLoadedSynchronously.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user