You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by so...@apache.org on 2017/03/01 02:21:03 UTC
[6/7] incubator-weex git commit: load weex js with file scheme (#2743)
load weex js with file scheme (#2743)
* load weex js with file scheme
* rename method name
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/91e884e0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/91e884e0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/91e884e0
Branch: refs/heads/0.11-dev
Commit: 91e884e03d779e2af42c98180d054fe587b8292b
Parents: 64b0edd
Author: dreaming <il...@gmail.com>
Authored: Wed Mar 1 10:09:39 2017 +0800
Committer: sospartan zheng <so...@apache.org>
Committed: Wed Mar 1 10:09:39 2017 +0800
----------------------------------------------------------------------
.../java/com/taobao/weex/WXSDKInstance.java | 2 +-
.../java/com/taobao/weex/utils/WXFileUtils.java | 37 +++++++++++++++++++-
2 files changed, 37 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/91e884e0/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index 70c6802..7c0ba9b 100755
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -570,7 +570,7 @@ public class WXSDKInstance implements IWXActivityStateListener,DomContext, View.
Uri uri = Uri.parse(url);
if (uri != null && TextUtils.equals(uri.getScheme(), "file")) {
- render(pageName, WXFileUtils.loadAsset(assembleFilePath(uri), mContext), renderOptions, jsonInitData, flag);
+ render(pageName, WXFileUtils.loadFileOrAsset(assembleFilePath(uri), mContext), renderOptions, jsonInitData, flag);
return;
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/91e884e0/android/sdk/src/main/java/com/taobao/weex/utils/WXFileUtils.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/WXFileUtils.java b/android/sdk/src/main/java/com/taobao/weex/utils/WXFileUtils.java
index d4269fd..ebbe87b 100755
--- a/android/sdk/src/main/java/com/taobao/weex/utils/WXFileUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXFileUtils.java
@@ -208,6 +208,9 @@ import android.content.Context;
import android.text.TextUtils;
import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -216,6 +219,29 @@ import java.io.InputStreamReader;
public class WXFileUtils {
/**
+ * Load file in device directory, if not exist, load from asset directory.
+ * @param path FilePath
+ * @param context Weex Context
+ * @return the Content of the file
+ */
+ public static String loadFileOrAsset(String path, Context context) {
+ if (!TextUtils.isEmpty(path)) {
+ File file = new File(path);
+ if (file.exists()) {
+ try {
+ FileInputStream fis = new FileInputStream(file);
+ return readStreamToString(fis);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+ } else {
+ return loadAsset(path, context);
+ }
+ }
+ return "";
+ }
+
+ /**
* Load file in asset directory.
* @param path FilePath
* @param context Weex Context
@@ -226,9 +252,18 @@ public class WXFileUtils {
return null;
}
InputStream inputStream = null;
- BufferedReader bufferedReader = null;
try {
inputStream = context.getAssets().open(path);
+ return readStreamToString(inputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+
+ private static String readStreamToString(InputStream inputStream) {
+ BufferedReader bufferedReader = null;
+ try {
StringBuilder builder = new StringBuilder(inputStream.available() + 10);
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
char[] data = new char[4096];