LynxMediaResourceFetcher

LynxMediaResourceFetcher 是 LynxEngine 内部定义的,由外部注入的,用于实现 Image 等依赖三方资源的路径重定向能力;

Android

接口定义:

LynxMediaResourceFetcher.java
public abstract class LynxMediaResourceFetcher {
  public abstract String shouldRedirectUrl(LynxResourceRequest request);

  /**
   * Quick check for a local path.
   *
   * @param url input path
   * @return
   *  TRUE if is a local path;
   *  FALSE if not a local path;
   *  UNDEFINED if not sure;
   */
  public OptionalBool isLocalResource(String url) {
    return OptionalBool.UNDEFINED;
  }

  /**
   * fetch Image Drawable directly.
   *
   * @param request
   * @param callback Response with the needed drawable.
   */
  public void fetchImage(LynxResourceRequest request, LynxResourceCallback<Closeable> callback) {}
}

方法介绍:

shouldRedirectUrl

LynxEngine 内部通过调用该方法重定向图片路径,返回结果要求为 String 类型;

NOTE

此方法必须实现;

isLocalResource

LynxEngine 内部通过调用该方法判断资源路径是否存在磁盘;

NOTE

此方法可选实现;

fetchImage

LynxEngine 内部会通用该方法获取图片的位图信息,返货内容要求为 Closeable 类型;

NOTE

此方法可选实现;

注入方式:

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

LynxViewBuilder builder = new LynxViewBuilder();
builder.setMediaResourceFetcher(new MediaTemplateResourceFetcher());

同时在 LynxViewBuilder 中开启该能力:

LynxViewBuilder builder = new LynxViewBuilder();
builder.setMediaResourceFetcher(new MediaTemplateResourceFetcher());
builder.setEnableGenericResourceFetcher(LynxBooleanOption.TRUE);

iOS

接口定义:

LynxMediaResourceFetcher.h
@protocol LynxMediaResourceFetcher <NSObject>

@required
- (NSString* _Nonnull)shouldRedirectUrl:(LynxResourceRequest* _Nonnull)request;

/**
 * Quick check for a local path.
 *
 * @param url input path
 * @return TRUE if is a local path; FALSE if not a local path
 */
@optional
- (LynxResourceOptionalBool)isLocalResource:(NSURL* _Nonnull)url;

/**
 * fetch UIImage directly.
 *
 * @param request
 * @param callback Response with the needed uiImage.
 *
 * @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)fetchUIImage:(LynxResourceRequest* _Nonnull)request
                      onComplete:(LynxMediaResourceCompletionBlock _Nonnull)response;

@end

方法介绍:

方法介绍:

shouldRedirectUrl

LynxEngine 内部通过调用该方法重定向图片路径,返回结果要求为 String 类型;

NOTE

此方法必须实现;

isLocalResource

LynxEngine 内部通过调用该方法判断资源路径是否存在磁盘;

NOTE

此方法可选实现;

fetchImage

LynxEngine 内部会通用该方法获取图片的位图信息,返货内容要求为 Closeable 类型;

NOTE

此方法可选实现;

注入方式:

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

LynxViewBuilder *builder = [[LynxViewBuilder alloc] init];
builder.mediaResourceFetcher = [[ExampleMediaResourceFetcher alloc] init];

同时在 LynxViewBuilder 中开启该能力:

LynxViewBuilder *builder = [[LynxViewBuilder alloc] init];
builder.mediaResourceFetcher = [[ExampleMediaResourceFetcher alloc] init];
builder.enableGenericResourceFetcher = LynxBooleanOptionTrue;

兼容性

LCD tables only load in the browser

除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。