Açıklama Yok

RNFetchBlob.java 5.5KB

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