LynxTemplateResourceFetcher

LynxTemplateResourceFetcher 是 Lynx Engine 内部定义的,由外部注入的,用于实现 BundleLazy Bundle 的资源加载接口。

Android

接口定义:

LynxTemplateResourceFetcher.java
abstract class LynxTemplateResourceFetcher {

   @Required
   void fetchTemplate(LynxResourceRequest request, LynxResourceCallBack<TemplateProviderResult> callback);

}

方法介绍:

fetchTemplate

LynxEngine 内部通过调用该方法获取 Bundle、Lazy Bundle 内容,在返回的结果类型中可以包含 byte[] 或者 TemplateBundle;

NOTE

此方法必须实现;

注入方式:

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

LynxViewBuilder builder = new LynxViewBuilder();
builder.setTemplateResourceFetcher(new ExampleTemplateResourceFetcher());

同时在 LynxViewBuilder 中开启该能力:

LynxViewBuilder builder = new LynxViewBuilder();
builder.setTemplateResourceFetcher(new ExampleTemplateResourceFetcher());
builder.setEnableGenericResourceFetcher(LynxBooleanOption.TRUE);

iOS

接口定义:

LynxTemplateResourceFetcher.h
@protocol LynxTemplateResourceFetcher <NSObject>

/**
 * fetch template resource of Bundle etc.
 *
 * @param request
 * @param callback response with the requiring content file: NSData* or TemplateBundle
 */
@required
- (void)fetchTemplate:(LynxResourceRequest* _Nonnull)request
           onComplete:(LynxTemplateResourceCompletionBlock _Nonnull)callback;

@end

NS_ASSUME_NONNULL_END

#endif  // DARWIN_COMMON_LYNX_RESOURCE_LYNXTEMPLATERESOURCEFETCHER_H_

方法介绍:

fetchTemplate

Lynx Engine 内部通过调用该方法获取 Bundle、Lazy Bundle 内容,在返回的结果类型中可以包含 NSData* 或者 TemplateBundle;

NOTE

此方法必须实现;

注入方式:

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

LynxViewBuilder *builder = [[LynxViewBuilder alloc] init];
builder.templateResourceFetcher = [[ExampleTemplateResourceFetcher alloc] init];

同时在 LynxViewBuilder 中开启该能力:

LynxViewBuilder *builder = [[LynxViewBuilder alloc] init];
builder.templateResourceFetcher = [[ExampleTemplateResourceFetcher alloc] init];
builder.enableGenericResourceFetcher = LynxBooleanOptionTrue;

兼容性

LCD tables only load in the browser

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