LynxGenericResourceFetcher

LynxGenericResourceFetcher 是 LynxEngine 内部定义的,由外部注入的,用于实现通用的资源加载接口,在 LynxEngine 内部用于 Text 等组件的资源加载能力;

Android

接口定义:

LynxGenericResourceFetcher.java
public abstract class LynxGenericResourceFetcher {
  /**
   * fetch resource with contents.
   *
   * @param request
   * @param callback contents of the requiring resource.
   */
  public abstract void fetchResource(
      LynxResourceRequest request, LynxResourceCallback<byte[]> callback);

  /**
   * fetch resource with res path.
   *
   * @param request
   * @param callback path on the disk of the requiring resource.
   */
  public abstract void fetchResourcePath(
      LynxResourceRequest request, LynxResourceCallback<String> callback);

  /**
   * fetch resource with stream.
   *
   * @param request
   * @param delegate streaming of the requiring resource.
   */
  public void fetchStream(LynxResourceRequest request, StreamDelegate delegate){};

  /**
   * cancel the request of the requiring resource.
   *
   * @param request the requiring request.
   */
  public void cancel(LynxResourceRequest request){};
}

方法介绍:

fetchResource

LynxEngine 内部通过调用该方法获取通用资源内容,返回结果要求为资源内容 byte[] 类型;

NOTE

此方法必须实现;

fetchResourcePath

LynxEngine 内部通过调用该方法获取通用资源在本地磁盘上的路径,返回结果要求为 String 类型;

NOTE

此方法必须实现;

fetchStream

LynxEngine 内部通过调用该方法以流式的方式获取资源内容;

NOTE

此方法可选实现;

注入方式:

在使用 LynxViewBuilder 构造 LynxView 时,注入:

LynxViewBuilder builder = new LynxViewBuilder();
builder.setGenericResourceFetcher(new GenericTemplateResourceFetcher());

同时在 LynxViewBuilder 中开启该能力:

LynxViewBuilder builder = new LynxViewBuilder();
builder.setGenericResourceFetcher(new GenericTemplateResourceFetcher());
builder.setEnableGenericResourceFetcher(LynxBooleanOption.TRUE);

iOS

接口定义:

LynxGenericResourceFetcher.h
@protocol LynxGenericResourceFetcher <NSObject>

/**
 * fetch resource with contents.
 *
 * @param request.
 * @param callback contents of the requiring resource.
 *
 * @return: A block which can cancel the image request if it is not finished. nil if cancel action
 * is not supported.
 */
@required
- (dispatch_block_t)fetchResource:(nonnull LynxResourceRequest *)request
                       onComplete:(LynxGenericResourceCompletionBlock _Nonnull)callback;

/**
 * fetch resource with res path.
 *
 * @param request
 * @param callback path on the disk of the requiring resource.
 *
 * @return: A block which can cancel the image request if it is not finished. nil if cancel action
 * is not supported.
 */
@required
- (dispatch_block_t)fetchResourcePath:(nonnull LynxResourceRequest *)request
                           onComplete:(LynxGenericResourcePathCompletionBlock _Nonnull)callback;

/**
 * fetch resource with stream.
 *
 * @param request
 * @param delegate streaming of the requiring resource.
 *
 * @return: A block which can cancel the image request if it is not finished. nil if cancel action
 * is not supported.
 */
@optional
- (dispatch_block_t)fetchStream:(nonnull LynxResourceRequest *)request
                     withStream:(nonnull id<LynxResourceStreamLoadDelegate>)delegate;

@end

方法介绍:

fetchResource

LynxEngine 内部通过调用该方法获取通用资源内容,返回结果要求为资源内容 byte[] 类型;

NOTE

此方法必须实现;

fetchResourcePath

LynxEngine 内部通过调用该方法获取通用资源在本地磁盘上的路径,返回结果要求为 String 类型;

NOTE

此方法必须实现;

fetchStream

LynxEngine 内部通过调用该方法以流式的方式获取资源内容;

NOTE

此方法可选实现;

注入方式:

在使用 LynxViewBuilder 构造 LynxView 时,注入:

LynxViewBuilder *builder = [[LynxViewBuilder alloc] init];
builder.genericResourceFetcher = [[ExampleGenericResourceFetcher alloc] init];

同时在 LynxViewBuilder 中开启该能力:

LynxViewBuilder *builder = [[LynxViewBuilder alloc] init];
builder.genericResourceFetcher = [[ExampleGenericResourceFetcher alloc] init];
builder.enableGenericResourceFetcher = LynxBooleanOptionTrue;

兼容性

nativeweb
Android
iOS
Web
register lifecycle observer for lynxView

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Non-standard. Check cross-browser support before using.
除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。