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{*;}
以上内容是否对您有帮助:
更多建议: