我正在尝试将发帖请求发送到google api以进行文本检测。但是首先我必须拍张照片,然后才能使用axios将这张照片发送给Google api。
以下代码用于拍照。
takePictureAndCreateAlbum = async () => {
let uri = this.camera.takePictureAsync({
base64: true
}).then(data => {
this.sendVisionOCR(data)
}).catch(err => {
console.log("err", err)}
)
const asset = await MediaLibrary.createAssetAsync(uri);
console.log('asset', asset);
MediaLibrary.createAlbumAsync('Expo', asset)
.then(() => {
Alert.alert('Album created!')
})
.catch(error => {
Alert.alert('An Error Occurred!')
});
};
}
以下代码用于发送请求goole api。
sendVisionOCR(data){
let body = {
"requests":[
{
"image":{
"content": data
},
"features": [
{
"type": "DOCUMENT_TEXT_DETECTION",
"maxResults": 1
}
]
}
]
}
axios.post('https://vision.googleapis.com/v1/images:annotate?key=xxXXxx', body)
.then((response) => {
console.log("worked", response)
})
.catch((err) => console.log("err", err))
}
运行代码时,出现这些错误;
可能的未处理承诺拒绝(id:0):
错误:参数“ localUri”无效。它必须是字符串!
但是有时候,如果我更改代码的一小部分,就会看到无限循环。它正在尝试发送base64文件。
"axios": "^0.18.0",
"expo": "^31.0.2",
"react": "16.5.0",
我也尝试获取操作。它不起作用吗?
有什么问题?为什么axios无法正常工作?
答案 0 :(得分:0)
我找到了解决方案。实际上,我的代码正在正确地工作。还有另一个问题。当我运行代码时,编码图片base64格式需要花费很长时间,并且有时似乎只能工作。有new个问题。
答案 1 :(得分:0)
在对插件代码进行更改之后,我遇到了同样的问题,并且可以正常工作。 在expo-local-authentication内部,只有一个文件:LocalAuthentication.js在该文件上进行了以下更改。
const result = await ExpoLocalAuthentication.authenticateAsync({ ...options, promptMessage });
替换为
import { Platform } from 'react-native';
let result=undefined ;
if(Platform.OS == 'ios'){
result = await ExpoLocalAuthentication.authenticateAsync({ ...options, promptMessage });
}else{
result = await ExpoLocalAuthentication.authenticateAsync();
}
谢谢:)