Weex Adapter 注册

2023-12-27 17:18 更新

ImageAdapter

WEEX和图片库完全解耦,WEEX的图片加载,都是通过调用公共接口,由实现类决定调用哪个图片库

  • IWXImgLoaderAdapter​: 根据url,load图片给某个view
  • IDrawableLoader​(可选): 根据url,load图片给某个drawable.

IWXImgLoaderAdapter

public interface IWXImgLoaderAdapter {
	void setImage(String url, ImageView view, WXImageQuality quality, WXImageStrategy strategy);   
}
  • WXImageQuality​ 图片质量的设置参数,有 ​LOW​, ​NORMAL​, ​HIGH​, ​ORIGINAL​ 几种质量,默认为​LOW​.
  • WXImageStrategy​ 是一个扩展类参数,配置图像是否可以剪切​isClipping​、锐化​isSharpen​以及配置占位符​placeHolder

IDrawableLoader(可选)

  interface DrawableTarget {

  }

  interface StaticTarget extends DrawableTarget{
    void setDrawable(@Nullable Drawable drawable, boolean resetBounds);
  }

  interface AnimatedTarget extends DrawableTarget{
    void setAnimatedDrawable(@Nullable Drawable drawable);
  }

  void setDrawable(String url, DrawableTarget drawableTarget, DrawableStrategy drawableStrategy);
}

IWXHttpAdapter

同​ImageAdapter​,WEEX和网络库也是解耦的,通过接口形式调用,由实现类决定调用哪个网络库。

public interface IWXHttpAdapter {
	void sendRequest(WXRequest request, OnHttpListener listener);
}

WXRequest

  • paramMap​(Map<String, String>): http自定义请求参数,比如(?a=1&b=2);
  • url​(String): http请求的目标url
  • method​(String): http请求方法 "post","get"
  • body​(String): http请求body
  • timeoutMs​(int): 请求超时时间,默认是3s
  • instanceId​(String): (页面)id

OnHttpListener

interface OnHttpListener {

	/**
	*  开始请求
	*/
	void onHttpStart();

	/**
	* 收到http header内容
	*/
	void onHeadersReceived(int statusCode,Map<String,List<String>> headers);

	/**
	*
	* @param 上传进度
	*/
	void onHttpUploadProgress(int uploadProgress);

	/**
	*
	* @param loadedLength 接收到的数据长度
	*/
	void onHttpResponseProgress(int loadedLength);

	/**
	* 请求结束
	* @param response 返回的response
	*/
	void onHttpFinish(WXResponse response);
}

IWXUserTrackAdapter(可选)

打点相关,如果关注weex的打点,需要实现这个adapter

  • 基础信息:sdk版本、jsbundle大小...
  • 性能信息:sdk初始化时间、页面加载可交互时间、加载bundle时间...
public interface IWXUserTrackAdapter {
	void commit(Context context, String eventId, String type, WXPerformance perf, Map<String, Serializable> params);
}

IActivityNavBarSetter

WXNavigatorModule​的实现依赖这个接口,用来操作navigation.

使用方式:

WXSDKEngine.setActivityNavBarSetter(new IActivityNavBarSetter(){});   

IWXStorageAdapter

WXStorageModule实现依赖这个接口,用来实现数据的存、取默认使用DefaultWXStorage实现

IWXJSExceptionAdapter

WEEX的异常上报接口,包括

  • 下载异常
  • 白屏异常
  • js异常
  • 降级异常
public interface IWXJSExceptionAdapter {
  void onJSException(WXJSExceptionInfo exception);
}

使用方式:

WXSDKEngine.setJSExcetptionAdapter(new TestExceptionAdapter());

SDK混淆规则

若要在APP中使用混淆,请在相应的配置文件中添加如下规则:

-keep class com.taobao.weex.WXDebugTool{*;}
-keep class com.taobao.weex.devtools.common.LogUtil{*;}
-keepclassmembers class ** {
  @com.taobao.weex.ui.component.WXComponentProp public *;
}
-keep class com.taobao.weex.bridge.**{*;}
-keep class com.taobao.weex.dom.**{*;}
-keep class com.taobao.weex.adapter.**{*;}
-keep class com.taobao.weex.common.**{*;}
-keep class * implements com.taobao.weex.IWXObject{*;}
-keep class com.taobao.weex.ui.**{*;}
-keep class com.taobao.weex.ui.component.**{*;}
-keep class com.taobao.weex.utils.**{
    public <fields>;
    public <methods>;
    }
-keep class com.taobao.weex.view.**{*;}
-keep class com.taobao.weex.module.**{*;}
-keep public class * extends com.taobao.weex.common.WXModule{*;}
-keep public class * extends com.taobao.weex.ui.component.WXComponent{*;}
-keep class * implements com.taobao.weex.ui.IExternalComponentGetter{*;}


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号