React-Native Camera 错误 - 没有为资产库找到合适的 URL 请求处理程序
Posted
技术标签:
【中文标题】React-Native Camera 错误 - 没有为资产库找到合适的 URL 请求处理程序【英文标题】:React-Native Camera error - No suitable URL request handler found for assets-library 【发布时间】:2017-12-24 23:21:56 【问题描述】:我正在创建 react-native 应用程序,它允许我使用相机拍照并上传到 AWS S3。
我可以单击图片并将图像保存到我的 iPhone 相机胶卷。但是,当我尝试上传图片时,我收到错误No suitable URL request handler found for assets-library://asset
,如下所示:
这是代码sn-p:
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. 在 Build Phases 下,添加 libRCTCameraRoll.a
(截图如下)。
【问题讨论】:
【参考方案1】:如果这是在 ios 上,我认为您需要在 XCode 中链接 libRCTCamera.a 以便正确解析文件 url。有关详细信息,请参阅this medium article。
【讨论】:
添加libRCTCameraRoll.a
解决了这个问题。我用解决方案更新了我的帖子。感谢您的链接。它帮助我解决了问题。以上是关于React-Native Camera 错误 - 没有为资产库找到合适的 URL 请求处理程序的主要内容,如果未能解决你的问题,请参考以下文章
React-native refs 和 Expo Camera
react-native项目中集成react-native-camera插件