You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/05/30 08:10:44 UTC

incubator-weex git commit: * [Android] Add a new method to StreamModule

Repository: incubator-weex
Updated Branches:
  refs/heads/master f855f909a -> 9313072bf


* [Android] Add a new method to StreamModule


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/9313072b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/9313072b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/9313072b

Branch: refs/heads/master
Commit: 9313072bfdac0882025e6dee7f3e2108c57225bf
Parents: f855f90
Author: YorkShen <sh...@gmail.com>
Authored: Wed May 30 14:25:28 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Wed May 30 14:25:28 2018 +0800

----------------------------------------------------------------------
 .../taobao/weex/adapter/DefaultUriAdapter.java  | 14 ++++--
 .../com/taobao/weex/adapter/URIAdapter.java     |  1 +
 .../com/taobao/weex/http/WXStreamModule.java    | 52 ++++++++++----------
 3 files changed, 37 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9313072b/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java b/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
index c5cc31a..de77e87 100644
--- a/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
+++ b/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
@@ -37,14 +37,20 @@ public class DefaultUriAdapter implements URIAdapter {
   @NonNull
   @Override
   public Uri rewrite(WXSDKInstance instance, String type, Uri uri) {
-    if (TextUtils.isEmpty(instance.getBundleUrl())) {
+    return rewrite(instance.getBundleUrl(), type, uri);
+  }
+
+  @NonNull
+  @Override
+  public Uri rewrite(String bundleURL, String type, Uri uri) {
+    if (TextUtils.isEmpty(bundleURL)) {
       return uri;
     }
 
-    Uri base = Uri.parse(instance.getBundleUrl());
+    Uri base = Uri.parse(bundleURL);
     Uri.Builder resultBuilder = uri.buildUpon();
-    
-   if (uri.isRelative()) {
+
+    if (uri.isRelative()) {
       //When uri is empty, means use the base url instead. Web broswer behave this way.
       if(uri.getEncodedPath().length() == 0){
         if(URIAdapter.IMAGE.equals(type)){

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9313072b/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java b/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java
index f2cdbde..cdac2fd 100644
--- a/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java
+++ b/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java
@@ -76,4 +76,5 @@ public interface URIAdapter {
    * @return
    */
   @NonNull Uri rewrite(WXSDKInstance instance, String type, Uri uri);
+  @NonNull Uri rewrite(String bundleURL, String type, Uri uri);
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9313072b/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java b/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java
index 7028698..d58f30e 100644
--- a/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java
+++ b/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java
@@ -18,12 +18,13 @@
  */
 package com.taobao.weex.http;
 
-import android.net.Uri;
+import static com.taobao.weex.http.WXHttpUtil.KEY_USER_AGENT;
 
-import com.alibaba.fastjson.JSON;
+import android.net.Uri;
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
 import com.taobao.weex.WXEnvironment;
+import com.taobao.weex.WXSDKManager;
 import com.taobao.weex.adapter.IWXHttpAdapter;
 import com.taobao.weex.adapter.URIAdapter;
 import com.taobao.weex.annotation.JSMethod;
@@ -33,7 +34,6 @@ import com.taobao.weex.common.WXModule;
 import com.taobao.weex.common.WXRequest;
 import com.taobao.weex.common.WXResponse;
 import com.taobao.weex.utils.WXLogUtils;
-
 import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -42,8 +42,6 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import static com.taobao.weex.http.WXHttpUtil.KEY_USER_AGENT;
-
 public class WXStreamModule extends WXModule {
 
   public static final String STATUS_TEXT = "statusText";
@@ -98,7 +96,7 @@ public class WXStreamModule extends WXModule {
                                   headers!=null?getHeader(headers,"Content-Type"):""
                           ));
       }
-    }, null);
+    }, null, mWXSDKInstance.getInstanceId(), mWXSDKInstance.getBundleUrl());
   }
 
   /**
@@ -125,8 +123,10 @@ public class WXStreamModule extends WXModule {
    */
   @JSMethod(uiThread = false)
   public void fetch(JSONObject optionsObj , final JSCallback callback, JSCallback progressCallback){
+    fetch(optionsObj, callback, progressCallback, mWXSDKInstance.getInstanceId(), mWXSDKInstance.getBundleUrl());
+  }
 
-
+  public void fetch(JSONObject optionsObj , final JSCallback callback, JSCallback progressCallback, String instanceId, String bundleURL){
     boolean invaildOption = optionsObj==null || optionsObj.getString("url")==null;
     if(invaildOption){
       if(callback != null) {
@@ -146,16 +146,16 @@ public class WXStreamModule extends WXModule {
 
     if (method != null) method = method.toUpperCase();
     Options.Builder builder = new Options.Builder()
-            .setMethod(!"GET".equals(method)
-                    &&!"POST".equals(method)
-                    &&!"PUT".equals(method)
-                    &&!"DELETE".equals(method)
-                    &&!"HEAD".equals(method)
-                    &&!"PATCH".equals(method)?"GET":method)
-            .setUrl(url)
-            .setBody(body)
-            .setType(type)
-            .setTimeout(timeout);
+        .setMethod(!"GET".equals(method)
+            &&!"POST".equals(method)
+            &&!"PUT".equals(method)
+            &&!"DELETE".equals(method)
+            &&!"HEAD".equals(method)
+            &&!"PATCH".equals(method)?"GET":method)
+        .setUrl(url)
+        .setBody(body)
+        .setType(type)
+        .setTimeout(timeout);
 
     extractHeaders(headers,builder);
     final Options options = builder.createOptions();
@@ -175,7 +175,7 @@ public class WXStreamModule extends WXModule {
               resp.put("data", null);
             } else {
               String respData = readAsString(response.originalData,
-                      headers != null ? getHeader(headers, "Content-Type") : ""
+                  headers != null ? getHeader(headers, "Content-Type") : ""
               );
               try {
                 resp.put("data", parseData(respData, options.getType()));
@@ -191,7 +191,7 @@ public class WXStreamModule extends WXModule {
           callback.invoke(resp);
         }
       }
-    }, progressCallback);
+    }, progressCallback, instanceId, bundleURL);
   }
 
   Object parseData(String data, Options.Type type) throws JSONException{
@@ -260,23 +260,23 @@ public class WXStreamModule extends WXModule {
   }
 
 
-  private void sendRequest(Options options,ResponseCallback callback,JSCallback progressCallback){
+  private void sendRequest(Options options,ResponseCallback callback,JSCallback progressCallback,String instanceId, String bundleURL){
     WXRequest wxRequest = new WXRequest();
     wxRequest.method = options.getMethod();
-    wxRequest.url = mWXSDKInstance.rewriteUri(Uri.parse(options.getUrl()), URIAdapter.REQUEST).toString();
+    wxRequest.url = WXSDKManager.getInstance().getURIAdapter().rewrite(bundleURL, URIAdapter.REQUEST,Uri.parse(options.getUrl())).toString();
     wxRequest.body = options.getBody();
     wxRequest.timeoutMs = options.getTimeout();
-    wxRequest.instanceId = mWXSDKInstance.getInstanceId();
+    wxRequest.instanceId = instanceId;
 
-    if(options.getHeaders()!=null)
+    if(options.getHeaders()!=null) {
       if (wxRequest.paramMap == null) {
         wxRequest.paramMap = options.getHeaders();
-      }else{
+      } else {
         wxRequest.paramMap.putAll(options.getHeaders());
       }
+    }
 
-
-    IWXHttpAdapter adapter = ( mAdapter==null && mWXSDKInstance != null) ? mWXSDKInstance.getWXHttpAdapter() : mAdapter;
+    IWXHttpAdapter adapter = ( mAdapter==null) ? WXSDKManager.getInstance().getIWXHttpAdapter() : mAdapter;
     if (adapter != null) {
       adapter.sendRequest(wxRequest, new StreamHttpListener(callback,progressCallback));
     }else{