Нет описания

RNFetchBlob.java 5.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package com.RNFetchBlob;
  2. import com.facebook.react.bridge.Callback;
  3. import com.facebook.react.bridge.Promise;
  4. import com.facebook.react.bridge.ReactApplicationContext;
  5. import com.facebook.react.bridge.ReactContextBaseJavaModule;
  6. import com.facebook.react.bridge.ReactMethod;
  7. import com.facebook.react.bridge.ReadableArray;
  8. import com.facebook.react.bridge.ReadableMap;
  9. import java.util.Map;
  10. public class RNFetchBlob extends ReactContextBaseJavaModule {
  11. static ReactApplicationContext RCTContext;
  12. public RNFetchBlob(ReactApplicationContext reactContext) {
  13. super(reactContext);
  14. RCTContext = reactContext;
  15. }
  16. @Override
  17. public String getName() {
  18. return "RNFetchBlob";
  19. }
  20. @Override
  21. public Map<String, Object> getConstants() {
  22. return RNFetchBlobFS.getSystemfolders(this.getReactApplicationContext());
  23. }
  24. @ReactMethod
  25. public void createFile(String path, String content, String encode, Callback callback) {
  26. RNFetchBlobFS.createFile(path, content, encode, callback);
  27. }
  28. @ReactMethod
  29. public void createFileASCII(String path, ReadableArray dataArray, Callback callback) {
  30. RNFetchBlobFS.createFileASCII(path, dataArray, callback);
  31. }
  32. @ReactMethod
  33. public void writeArrayChunk(String streamId, ReadableArray dataArray, Callback callback) {
  34. RNFetchBlobFS.writeArrayChunk(streamId, dataArray, callback);
  35. }
  36. @ReactMethod
  37. public void unlink(String path, Callback callback) {
  38. RNFetchBlobFS.unlink(path, callback);
  39. }
  40. @ReactMethod
  41. public void mkdir(String path, Callback callback) {
  42. RNFetchBlobFS.mkdir(path, callback);
  43. }
  44. @ReactMethod
  45. public void exists(String path, Callback callback) {
  46. RNFetchBlobFS.exists(path, callback);
  47. }
  48. @ReactMethod
  49. public void cp(String path, String dest, Callback callback) {
  50. RNFetchBlobFS.cp(path, dest, callback);
  51. }
  52. @ReactMethod
  53. public void mv(String path, String dest, Callback callback) {
  54. RNFetchBlobFS.mv(path, dest, callback);
  55. }
  56. @ReactMethod
  57. public void ls(String path, Callback callback) {
  58. RNFetchBlobFS.ls(path, callback);
  59. }
  60. @ReactMethod
  61. public void writeStream(String path, String encode, boolean append, Callback callback) {
  62. new RNFetchBlobFS(this.getReactApplicationContext()).writeStream(path, encode, append, callback);
  63. }
  64. @ReactMethod
  65. public void writeChunk(String streamId, String data, Callback callback) {
  66. RNFetchBlobFS.writeChunk(streamId, data, callback);
  67. }
  68. @ReactMethod
  69. public void closeStream(String streamId, Callback callback) {
  70. RNFetchBlobFS.closeStream(streamId, callback);
  71. }
  72. @ReactMethod
  73. public void removeSession(ReadableArray paths, Callback callback) {
  74. RNFetchBlobFS.removeSession(paths, callback);
  75. }
  76. @ReactMethod
  77. public void readFile(String path, String encoding, Promise promise) {
  78. RNFetchBlobFS.readFile(path, encoding, promise);
  79. }
  80. @ReactMethod
  81. public void writeFileArray(String path, ReadableArray data, boolean append, Promise promise) {
  82. RNFetchBlobFS.writeFile(path, data, append, promise);
  83. }
  84. @ReactMethod
  85. public void writeFile(String path, String encoding, String data, boolean append, Promise promise) {
  86. RNFetchBlobFS.writeFile(path, encoding, data, append, promise);
  87. }
  88. @ReactMethod
  89. public void lstat(String path, Callback callback) {
  90. RNFetchBlobFS.lstat(path, callback);
  91. }
  92. @ReactMethod
  93. public void stat(String path, Callback callback) {
  94. RNFetchBlobFS.stat(path, callback);
  95. }
  96. @ReactMethod
  97. public void scanFile(ReadableArray pairs, Callback callback) {
  98. int size = pairs.size();
  99. String [] p = new String[size];
  100. String [] m = new String[size];
  101. for(int i=0;i<size;i++) {
  102. ReadableMap pair = pairs.getMap(i);
  103. if(pair.hasKey("path")) {
  104. p[i] = pair.getString("path");
  105. if(pair.hasKey("mime"))
  106. m[i] = pair.getString("mime");
  107. else
  108. m[i] = null;
  109. }
  110. }
  111. new RNFetchBlobFS(this.getReactApplicationContext()).scanFile(p, m, callback);
  112. }
  113. @ReactMethod
  114. /**
  115. * @param path Stream file path
  116. * @param encoding Stream encoding, should be one of `base64`, `ascii`, and `utf8`
  117. * @param bufferSize Stream buffer size, default to 1024 or 1026(base64).
  118. */
  119. public void readStream(String path, String encoding, int bufferSize) {
  120. RNFetchBlobFS fs = new RNFetchBlobFS(this.getReactApplicationContext());
  121. fs.readStream(path, encoding, bufferSize);
  122. }
  123. @ReactMethod
  124. public void cancelRequest(String taskId, Callback callback) {
  125. try {
  126. RNFetchBlobReq.cancelTask(taskId);
  127. callback.invoke(null, taskId);
  128. } catch (Exception ex) {
  129. callback.invoke(ex.getLocalizedMessage(), null);
  130. }
  131. }
  132. @ReactMethod
  133. public void slice(String src, String dest, int start, int end, String encode, Callback callback) {
  134. RNFetchBlobFS.slice(src, dest, start, end, encode, callback);
  135. }
  136. @ReactMethod
  137. public void enableProgressReport(String taskId) {
  138. RNFetchBlobReq.progressReport.put(taskId, true);
  139. }
  140. @ReactMethod
  141. public void enableUploadProgressReport(String taskId) {
  142. RNFetchBlobReq.uploadProgressReport.put(taskId, true);
  143. }
  144. @ReactMethod
  145. public void fetchBlob(ReadableMap options, String taskId, String method, String url, ReadableMap headers, String body, final Callback callback) {
  146. new RNFetchBlobReq(options, taskId, method, url, headers, body, null, callback).run();
  147. }
  148. @ReactMethod
  149. public void fetchBlobForm(ReadableMap options, String taskId, String method, String url, ReadableMap headers, ReadableArray body, final Callback callback) {
  150. new RNFetchBlobReq(options, taskId, method, url, headers, null, body, callback).run();
  151. }
  152. }