Unverified Commit d1ba0ba6 authored by 少言's avatar 少言 Committed by GitHub

Merge pull request #121 from Koppel-Zhou/master

feature: 补充遗漏的asyncOpenCamera方法
parents 1add21ce bb8f4eca
...@@ -284,7 +284,27 @@ STImagePicke.removeAllPhoto() ...@@ -284,7 +284,27 @@ STImagePicke.removeAllPhoto()
``` ```
### 调用相机 ### 调用相机
相机功能调用 `openCamera` 方法,一样支持 Callback 和 Promise 两种形式,结果参数也保持一致。 相机功能调用方法,一样支持 Callback 和 Promise 两种形式,结果参数也保持一致。
```javascript
//Callback方式
SyanImagePicker.openCamera(options, (err, photos) => {
if (err) {
// 取消选择
return;
}
// 选择成功,渲染图片
// ...
})
//Promise方式
SYImagePicker.asyncOpenCamera(options)
.then(()=>{
...
})
.catch(()=>{
...
})
```
### 删除缓存 ### 删除缓存
```javascript ```javascript
......
...@@ -84,6 +84,14 @@ public class RNSyanImagePickerModule extends ReactContextBaseJavaModule { ...@@ -84,6 +84,14 @@ public class RNSyanImagePickerModule extends ReactContextBaseJavaModule {
this.openCamera(); this.openCamera();
} }
@ReactMethod
public void asyncOpenCamera(ReadableMap options, Promise promise) {
this.cameraOptions = options;
this.mPickerCallback = null;
this.mPickerPromise = promise;
this.openCamera();
}
/** /**
* 缓存清除 * 缓存清除
* 包括裁剪和压缩后的缓存,要在上传成功后调用,注意:需要系统sd卡权限 * 包括裁剪和压缩后的缓存,要在上传成功后调用,注意:需要系统sd卡权限
......
...@@ -104,6 +104,14 @@ export default { ...@@ -104,6 +104,14 @@ export default {
RNSyanImagePicker.openCamera(optionObj, callback) RNSyanImagePicker.openCamera(optionObj, callback)
}, },
asyncOpenCamera(options) {
const optionObj = {
...defaultOptions,
...options,
};
return RNSyanImagePicker.asyncOpenCamera(optionObj);
},
/** /**
* 清除缓存 * 清除缓存
*/ */
......
...@@ -55,7 +55,7 @@ RCT_EXPORT_METHOD(showImagePicker:(NSDictionary *)options ...@@ -55,7 +55,7 @@ RCT_EXPORT_METHOD(showImagePicker:(NSDictionary *)options
RCT_REMAP_METHOD(asyncShowImagePicker, RCT_REMAP_METHOD(asyncShowImagePicker,
options:(NSDictionary *)options options:(NSDictionary *)options
resolver:(RCTPromiseResolveBlock)resolve showImagePickerResolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject) { rejecter:(RCTPromiseRejectBlock)reject) {
self.cameraOptions = options; self.cameraOptions = options;
self.resolveBlock = resolve; self.resolveBlock = resolve;
...@@ -72,6 +72,17 @@ RCT_EXPORT_METHOD(openCamera:(NSDictionary *)options callback:(RCTResponseSender ...@@ -72,6 +72,17 @@ RCT_EXPORT_METHOD(openCamera:(NSDictionary *)options callback:(RCTResponseSender
[self takePhoto]; [self takePhoto];
} }
RCT_REMAP_METHOD(asyncOpenCamera,
options:(NSDictionary *)options
openCameraResolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject) {
self.cameraOptions = options;
self.resolveBlock = resolve;
self.rejectBlock = reject;
self.callback = nil;
[self takePhoto];
}
RCT_EXPORT_METHOD(deleteCache) { RCT_EXPORT_METHOD(deleteCache) {
NSFileManager *fileManager = [NSFileManager defaultManager]; NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtPath: [NSString stringWithFormat:@"%@ImageCaches", NSTemporaryDirectory()] error:nil]; [fileManager removeItemAtPath: [NSString stringWithFormat:@"%@ImageCaches", NSTemporaryDirectory()] error:nil];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment