You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ha...@apache.org on 2018/12/19 13:26:58 UTC

[incubator-weex-site] branch draft updated: update docs for android-apis (#244)

This is an automated email from the ASF dual-hosted git repository.

hanks pushed a commit to branch draft
in repository https://gitbox.apache.org/repos/asf/incubator-weex-site.git


The following commit(s) were added to refs/heads/draft by this push:
     new 626cb99  update docs for android-apis (#244)
626cb99 is described below

commit 626cb99af75cbac59d837492079f3c5b6b17cc60
Author: chen <lu...@users.noreply.github.com>
AuthorDate: Wed Dec 19 21:26:54 2018 +0800

    update docs for android-apis (#244)
---
 docs/docs/api/android-apis.md    | 295 +++++++++++++++++++++------------------
 docs/zh/docs/api/android-apis.md | 272 ++++++++++++++++++++++++++++++++++++
 2 files changed, 430 insertions(+), 137 deletions(-)

diff --git a/docs/docs/api/android-apis.md b/docs/docs/api/android-apis.md
index 6ec6b37..2ec67b3 100644
--- a/docs/docs/api/android-apis.md
+++ b/docs/docs/api/android-apis.md
@@ -6,41 +6,75 @@ order: 2.2
 version: 2.1
 ---
 
-# Android APIs
 
-## WXSDKEngine
 
-1. Register the module and component
-1. Set up various adapters
-
-### Module & Component
-#### Component
-One can register a component using the following function:
-
-    public static boolean registerComponent(IFComponentHolder holder, boolean appendTree, String ... names)
-
-* holder is a abstract factory designed for create Component, and SimpleComponentHolder is the a simple way to achieve IFComponentHolder.
-* appendTree is an additional flag which is unused now.
-* names is the component's name in front end template file. A Android component could be mapped into multiple names.
-
-#### Module
-One can register a module using the following way:
-
-    public static <T extends WXModule> boolean registerModule(String moduleName, Class<T> moduleClass,boolean global) throws WXException
-
-* moduleName is the name in front end template.
-* moduleClass is the Java class of the module, which provide a constructor with an empty parameter.
-* global is a flag, true for singleton in the whole app, false for creating an object for each WXSDKIntance.
-
-### Adapter
-#### ImageAdapter
+# WXSDKEngine
+
+1. Register component
+2. Register module
+3. Set up various adapters
+
+## Register component
+
+### __registerComponent(type,class,appendTree)__
+
+- `return`(_bool_): register success
+- `type`(_String_): component's name,such as `div`
+- `class`(_Class_): ComponentClass,called when init component 
+- `appendTree`(_bool_): render option logic,default false
+	- if true,render compoent tree one-time
+	- if false,render component one by one
+
+usage:
+
+```
+WXSDKEngine.registerComponent("video", WXVideo.class, false);
+```
+
+### __registerComponent(holder,appendTree,...names)__
+
+- `return`(_bool_): register success
+- `holder`(_IFComponentHolder_): abstract factory designed for create Component, and __SimpleComponentHolder__ is the a simple way to achieve IFComponentHolder.
+- `appendTree`: see `registerComponent(type,class,appendTree)`
+- `names`(_String ..._): component's name in front end template file
+
+usage:
+
+```
+WXSDKEngine.registerComponent(
+              new SimpleComponentHolder(
+                      WXText.class,
+                      new WXText.Creator()
+              ),
+              false,
+              "text"
+      );
+```
+
+## Register module
+
+registerModule(moduleName,moduleClass)
+
+- `return`(_bool_): register success
+- `moduleName`(_String_): module name
+- `moduleClass`(_Class_): the Java class of the module, which provide a constructor with an empty parameter.
+
+使用方式:
+
+```
+WXSDKEngine.registerModule("picker", WXPickersModule.class);
+```
+
+## Set up various adapters
+
+### ImageAdapter
 Image adapter is responsible for loading images according to URLs. There are two types of image adapter:
 1. Loading a image to a view according to URL.
 1. Loading a image to a specified object according to URL.
 
 In order to use image component, one must implement the first adapter, while the second adapter is optional.
 
-##### IWXImgLoaderAdapter
+#### IWXImgLoaderAdapter
 
     public interface IWXImgLoaderAdapter {
       void setImage(String url, ImageView view, WXImageQuality quality, WXImageStrategy strategy);
@@ -49,111 +83,130 @@ In order to use image component, one must implement the first adapter, while the
  * `WXImageQuality` that the quality of the picture variables, take the following values `LOW`, `NORMAL`, `HIGH`, `ORIGINAL` picture quality in turn higher. The default is `LOW`.
  * `WXImageStrategy` is an extension class that indicates whether the image can be cut (isClipping) sharpening (isSharpen) placeholder (placeHolder) and so on.
 
-##### IDrawableLoaderAdapter
+#### IDrawableLoaderAdapter
 This adapter is optional.
 
     void setDrawable(String url, DrawableTarget drawableTarget, DrawableStrategy drawableStrategy);
 
 *  `DrawableTarget` is a object into where will load an image. `DrawableTarget` is one of `StaticTarget` or `AnimatedTarget`.
 
-#### IWXHttpAdapter
+### IWXHttpAdapter
 
 Weex custom `WXRequest` and `OnHttpListener`, Native reload interface can be obtained from the Request URL, Header and other parameters, the network request can be completed through `OnHttpListener` callback notification. Weex provides the default network request: `DefaultWXHttpAdapter`, using `HttpURLConnection` for network requests.
 
 The interface is defined as follows:
 
-    public interface IWXHttpAdapter {
-      void sendRequest(WXRequest request, OnHttpListener listener);
-    }
-
-* `WXRequest` defines the parameters related to the network request, the request method, the request body, and the timeout time. Weex default timeout is 3000.
-
-* `OnHttpListener` defines the corresponding method after the network request ends. Defined as follows:
-
-      interface OnHttpListener {
-
-        /**
-        * start request
-        */
-        void onHttpStart();
-
-        /**
-        * headers received
-        */
-        void onHeadersReceived(int statusCode,Map<String,List<String>> headers);
-
-        /**
-        * post progress
-        * @param uploadProgress
-        */
-        void onHttpUploadProgress(int uploadProgress);
-
-        /**
-        * response loaded length (bytes), full length should read from headers (content-length)
-        * @param loadedLength
-        */
-        void onHttpResponseProgress(int loadedLength);
-
-        /**
-        * http response finish
-        * @param response
-        */
-        void onHttpFinish(WXResponse response);
-      }
-
-#### IWXUserTrackAdapter
+```
+public interface IWXHttpAdapter {
+	void sendRequest(WXRequest request, OnHttpListener listener);
+}
+``` 
+
+#### WXRequest
+
+* `WXRequest` defines the parameters related to the network request, the request method, the request body, and the timeout time. Weex default timeout is 3s.
+
+#### OnHttpListener
+
+```
+ interface OnHttpListener {
+
+    /**
+     * start request
+     */
+    void onHttpStart();
+
+    /**
+     * headers received
+     */
+    void onHeadersReceived(int statusCode,Map<String,List<String>> headers);
+
+    /**
+     * post progress
+     * @param uploadProgress
+     */
+    void onHttpUploadProgress(int uploadProgress);
+
+    /**
+     * response loaded length (bytes), full length should read from headers (content-length)
+     * @param loadedLength
+     */
+    void onHttpResponseProgress(int loadedLength);
+
+    /**
+     * http response finish
+     * @param response
+     */
+    void onHttpFinish(WXResponse response);
+  }
+```
+
+### IWXUserTrackAdapter
 Weex related performance data (first screen loading time, JS-Native communication time, dom update time, etc.) and other general information (JSLib file size, Weex SDK version number, etc.).
 
-    public interface IWXUserTrackAdapter {
-      void commit(Context context, String eventId, String type, WXPerformance perf, Map<String, Serializable> params);
-    }
+```
+public interface IWXUserTrackAdapter {
+	void commit(Context context, String eventId, String type, WXPerformance perf, Map<String, Serializable> params);
+}
+```
 
 Native implementation interface can be obtained through `WXPerformance` and `params` corresponding information.
 
-#### IActivityNavBarSetter
+### IActivityNavBarSetter
 Weex provided the ability of navigation through `WXNavigatorModule` which relys on IActivityNavBarSetter.
 
 Usage:
 
-    WXSDKEngine.setActivityNavBarSetter(new IActivityNavBarSetter(){});    
+```
+WXSDKEngine.setActivityNavBarSetter(new IActivityNavBarSetter(){});   
+```    
 
-#### IWXStorageAdapter
+### IWXStorageAdapter
 Weex provided the ability of local storage through `WXStorageModule` which depends on IWXStorageAdapter. One can use `DefaultWXStorage` as the default implementation of IWXStorageAdapter.
 
 
-#### IWXJSExceptionAdapter
-IWXJSExceptionAdapter is used to handle JavaScript exception.
-
-## WXSDKInstace
-### Weex Native and JavaScript communication.
-
-#### Custom events
+### IWXJSExceptionAdapter
+IWXJSExceptionAdapter is used to handle weex exception.
+- DownLoadException
+- WhiteSceenException
+- JSException
+- DownGradeException
+
+```
+public interface IWXJSExceptionAdapter {
+  void onJSException(WXJSExceptionInfo exception);
+}
+```
+usage:
+
+```
+WXSDKEngine.setJSExcetptionAdapter(new TestExceptionAdapter());
+```
+
+# WXSDKInstace
+
+## Custom events
 Used for a custom control for event notifications, such as custom click events, response drop events, and so on.
 
-`WXSDKInstance.java `
-
-    public void fireEvent(String elementRef,final String type, final Map<String, Object> data,final Map<String, Object> domChanges){  }
-
-    public void fireEvent(String elementRef,final String type, final Map<String, Object> data){
-      fireEvent(elementRef,type,data,null);
-    }
-
-    public void fireEvent(String elementRef, String type){
-      fireEvent(ref,type,new HashMap<String, Object>());
-    }
+```
+void fireEvent(elementRef,type)
+void fireEvent(elementRef,type, data)
+void fireEvent(elementRef,type,data,domChanges)
+```
 
-* `elementRef`:The event occurred for the control ID。
+* `elementRef`(_String_): The event occurred for the control ID。
 
-* `type`: Custom events, Weex defaults to a custom event starting with onXxxxx. OnPullDown (drop-down event)
+* `type`(_String_): Custom events, Weex defaults to a custom event starting with onXxxxx. OnPullDown (drop-down event)
 
-* `data`: Need to reveal the parameters, such as the current control of the size, coordinates and other information。
+* `data`(_Map<String, Object>_): Need to reveal the parameters, such as the current control of the size, coordinates and other information。
 
-* `domChanges`:Update ref for the control's Attribute and Style
+* `domChanges`(_Map<String, Object>_): Update ref for the control's Attribute and Style
 
-#### Event callback
+## Event callback
 Used for Module callback, for example, after the completion of positioning Module need to notify JS. Use as follows:
 
-    public class WXLocation extends WXModule {
+```
+public class WXLocation extends WXModule {
 
       @JSMethod
       public void getLocation(JSCallback callback){
@@ -166,47 +219,15 @@ Used for Module callback, for example, after the completion of positioning Modul
       //Continuous connection
       callback.invokeAndKeepAlive(data);
       //Invoke method and invokeAndKeepAlive two methods of choice  }
-    }
+}
+```
 
-### Weex Native and other Native code communication
-#### OnWXScrollListener
-Weex gets the scroll event You can register `registerOnWXScrollListener` via `WXSDKInstance`
-The interface is defined as follows:
 
-    public interface OnWXScrollListener {
-
-      /**
-      * The  view is not currently scrolling.
-      */
-      int IDLE = RecyclerView.SCROLL_STATE_IDLE;
-      /**
-      * The view is currently being dragged by outside input such as user touch input.
-      */
-      int DRAGGING = RecyclerView.SCROLL_STATE_DRAGGING;
-      /**
-      * The view is currently animating to a final position while not under
-      * outside control.
-      */
-      int SETTLING = RecyclerView.SCROLL_STATE_SETTLING;
-
-      /**
-      * Callback method to be invoked when the view has been scrolled. This will be
-      * called after the scroll has completed.
-      * <p>
-      * This callback will also be called if visible item range changes after a layout
-      * calculation. In that case, dx and dy will be 0.
-      *
-      */
-      void onScrolled(View view, int x, int y);
-
-      /**
-      * Callback method to be invoked when view's scroll state changes.
-      *
-      */
-      void onScrollStateChanged(View view, int x, int y, int newState);
-    }
+## OnWXScrollListener
+Weex gets the scroll event You can register `registerOnWXScrollListener` via `WXSDKInstance`
+
+## Other Introduction
 
-## Other Introduction
 ### setSize
 
 You can use the `mWXSDKInstance.setSize()` method to change the size of the Weex container.
diff --git a/docs/zh/docs/api/android-apis.md b/docs/zh/docs/api/android-apis.md
index e69de29..4e29f4f 100644
--- a/docs/zh/docs/api/android-apis.md
+++ b/docs/zh/docs/api/android-apis.md
@@ -0,0 +1,272 @@
+---
+title: Android APIs
+type: references
+group: API
+order: 2.2
+version: 2.1
+---
+
+
+
+# WXSDKEngine
+
+1. 注册module 
+2. 注册component
+3. 设置自定义的adapter
+
+
+## 注册Component
+
+### __registerComponent(type,class,appendTree)__
+
+- `return`(_bool_): 是否注册成功
+- `type`(_String_): 前端使用的对应标签
+- `class`(_Class_): 组件的class,在创建组件实例时调用
+- `appendTree`(_bool_): 渲染时判定逻辑,默认false
+	- 如果为true,则这个组件的子组件,整颗树建立、layout完后,整体一起刷新。
+	- 如果为false,则这个组件的子组件,每add一个,刷新一个。
+
+使用方式:
+
+```
+WXSDKEngine.registerComponent("video", WXVideo.class, false);
+```
+
+### __registerComponent(holder,appendTree,...names)__
+
+- `return`(_bool_): 是否注册成功
+- `holder`(_IFComponentHolder_): 用于创建component的抽象工厂,默认使用__SimpleComponentHolder__。
+- `appendTree`: 同上
+- `names`(_String ..._): 前端使用的对应标签
+
+使用方式:
+
+```
+WXSDKEngine.registerComponent(
+              new SimpleComponentHolder(
+                      WXText.class,
+                      new WXText.Creator()
+              ),
+              false,
+              "text"
+      );
+```
+
+
+## 注册Module
+
+registerModule(moduleName,moduleClass)
+
+- `return`(_bool_): 是否注册成功
+- `moduleName`(_String_): 模块名称
+- `moduleClass`(_Class_): 模块对应的class,创建module实例时使用
+
+使用方式:
+
+```
+WXSDKEngine.registerModule("picker", WXPickersModule.class);
+```
+
+## 注册Adapter
+
+### 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());
+```
+
+# WXSDKInstace
+
+Weex Native 和 JavaScript 世界交互通信.
+
+## 自定义发送事件
+
+向js世界发送一些事件,比如`click`事件
+
+```
+void fireEvent(elementRef,type)
+void fireEvent(elementRef,type, data)
+void fireEvent(elementRef,type,data,domChanges)
+```
+
+* `elementRef`(_String_):产生事件的组件id
+
+* `type`(_String_): 事件名称,weex默认事件名称格式为"onXXX",比如`OnPullDown `
+
+* `data`(_Map<String, Object>_): 需要发送的一些额外数据,比如`click`时,view大小,点击坐标等等。
+
+* `domChanges`(_Map<String, Object>_): 目标组件的属性和样式发生的修改内容
+
+
+## 结果回调
+
+JS调用时,有的场景需要返回一些数,比如以下例子,返回x、y坐标
+
+```
+public class WXLocation extends WXModule {
+
+      @JSMethod
+      public void getLocation(JSCallback callback){
+      //Get the code for the location information .....
+      Map<String,String> data=new HashMap<>();
+      data.put("x","x");
+      data.put("y","y");
+      //notify once
+      callback.invoke(data);
+      //Continuous connection
+      callback.invokeAndKeepAlive(data);
+      //Invoke method and invokeAndKeepAlive two methods of choice  }
+}
+```
+
+## OnWXScrollListener
+
+如果想要拿到instance滚动的信息,需要在`WXSDKInstance`上注册`registerOnWXScrollListener` ,详细参数见`OnWXScrollListener `
+
+
+
+## 其它的一些接口介绍
+### 设置instance显示的大小
+
+使用`mWXSDKInstance.setSize()`来改变instance容器显示的大小
+
+
+### 降级
+
+Weex在开发过程中,会不断增加新的feature,但是这些feature可能在老版本上不兼容。这种情况下,native可以在`IWXRenderListener`的`onException`中进行判断,如果错误信息是 "|"格式. 并且分割后,"|"前第一个字符串等于1,这时候native可以直接降级到h5页面或者提示用户当前版本不支持。