私はカメラを使用して写真を撮ってAWS S3にアップロードできる反応ネイティブアプリを作成しています。リアクションネイティブカメラエラー - アセットライブラリに適切なURLリクエストハンドラが見つかりません
画像をクリックしてiPhoneのカメラロールに画像を保存できます。しかし、私は、画像をアップロードしようとすると、下図のように、私はエラーNo suitable URL request handler found for assets-library://asset
を得る:ここで は、コードスニペットです:
import Camera from 'react-native-camera';
import {RNS3} from "react-native-aws3";
class NCamera extends React.Component {
takePicture() {
this.camera.capture()
.then((data) => {
const file = { uri: data.path, name: 'image.png', type: 'image/png',}
const options = {
keyPrefix: "images/",
bucket: "my-bucket-name",
region: "us-east-1",
accessKey: "key",
secretKey: "secret-key",
successActionStatus: 201
}
RNS3.put(file, options)
.then(response => {
if (response.status != 201)
console.log('Error uploading file to S3');
else
console.log(response.body);
})
.catch (error => console.log(`Error uploading: ${error}`));
})
.catch(err => console.log(err));
}
render() {
return (
<Camera
ref={(cam) => {
this.camera = cam;
}}
style={styles.preview}
aspect={Camera.constants.Aspect.fill}>
<Text style={styles.capture} onPress={this.takePicture.bind(this)}>[CAPTURE]</Text>
</Camera>
);
}
}
ソリューション
私はこの問題を解決libRCTCameraRoll.a
を追加しました。
手順は次のとおりです。
1. xcodeにRCTCameraRoll.xcodeproj
を開きます。ファイルはnode_modules/react-native/Libraries/CameraRoll
の下にあります。2.ビルドフェーズで、libRCTCameraRoll.a
(下記のスクリーンショット)を追加します。
'libRCTCameraRoll.a'を追加することで問題が解決しました。私はソリューションで私のポストを更新しました。リンクありがとう。それは私が問題を解決するのを助けました。 –