2017-12-24 20 views
0

私はカメラを使用して写真を撮ってAWS S3にアップロードできる反応ネイティブアプリを作成しています。リアクションネイティブカメラエラー - アセットライブラリに適切なURLリクエストハンドラが見つかりません

画像をクリックしてiPhoneのカメラロールに画像を保存できます。しかし、私は、画像をアップロードしようとすると、下図のように、私はエラーNo suitable URL request handler found for assets-library://assetを得る:ここで iOS image upload error は、コードスニペットです:

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(下記のスクリーンショット)を追加します。

enter image description here

答えて

1

これはIOS上にある場合、私はあなたがファイルのURLを適切に解決できるようにXcodeでlibRCTCamera.aをリンクする必要があると思います。詳細については、this medium articleを参照してください。

+0

'libRCTCameraRoll.a'を追加することで問題が解決しました。私はソリューションで私のポストを更新しました。リンクありがとう。それは私が問題を解決するのを助けました。 –

関連する問題