本文介绍了如何在应用程序或手机内部存储中保存/存储签名图像.在本地反应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的本地人.我正在尝试将签名存储在移动内部存储中.或在应用本身中.但我不知道如何将该签名图像存储在手机内部存储或应用存储中.请帮忙 .这是代码

I am new to react native. I am trying to store signature in my mobile internal storage. or in app itself. but I do not know how to store this signature image in phone internal storage or in app storage. please help . here is code

base64:null,

_onSaveEvent = (result) => {

  this.setState({base64: result.pathName})
  console.log(this.state.base64)


                            <SignatureCapture
                              style={styles.signature}
                              ref="sign"
                              onSaveEvent={this._onSaveEvent}
                              onDragEvent={this._onDragEvent}
                              showNativeButtons={false}
                              showTitleLabel={false}
                              viewMode={'portrait'}
                            />
}

result.pathName返回此路径=

result.pathName return this path =

/storage/emulated/0/saved_signature/signature.png

,但是知道文件夹调用者save_signature.那么该怎么办.

but there is know folder caller saved_signature. so what to do.

推荐答案

    npm install --save rn-fetch-blob

For android only AndroidManifest.xml
<!-- Required -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!-- Include this only if you are planning to use the camera roll -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- Include this only if you are planning to use the microphone for video recording -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>


<!-- Required -->
<application  android:requestLegacyExternalStorage="true" ... />

// check for permission
const checkAndroidPermission = async () => {
    if (Platform.OS === 'ios') {
      save();
    } else {
      try {
        const granted = await PermissionsAndroid.request(
          PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
        );
        if (granted === PermissionsAndroid.RESULTS.GRANTED) {
          // Once user grant the permission start downloading

          save();
        } else {
          if (Platform.OS === 'android') {
            ToastAndroid.show('Storage Permission denied.', ToastAndroid.SHORT);
          } else {
            AlertIOS.alert('Storage Permission denied.');
          }
        }
      } catch (err) {
        // To handle permission related exception
        console.warn('tryerr', err);
      }
    }
  };

   const save= async () => {
      const paths = `${
        RNFetchBlob.fs.dirs.DCIMDir
      }/${new Date().getTime()}.jpg`; // where u need to put that
      try {
        RNFetchBlob.fs
          .writeFile(paths, data.base64, 'base64')//data.base64 is your photo with convert base64
          .then((value) => {
              RNFetchBlob.fs
                .scanFile([{path: paths}]) //after save to notify gallry for that
                .then(() => {
                  console.log('scan file success');
                })
                .catch((err) => {
                  console.log('scan file error');
                });
          })
          .catch((e) => console.log(e.message));
      } catch (error) {
        console.log('fileerror', error.message);
      }

}

我可以帮助您

这篇关于如何在应用程序或手机内部存储中保存/存储签名图像.在本地反应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-27 21:53