test(KYC页): 测试图片上传方式
This commit is contained in:
parent
7084474298
commit
ae808c0439
@ -11,21 +11,31 @@ export function android() {
|
||||
* @param {Function} renderFun 回调函数,接收APP传递的access参数
|
||||
*/
|
||||
export function uploadImgFile(renderFun) {
|
||||
// 设置全局回调函数,供原生App调用
|
||||
window.renderData = renderFun
|
||||
// iOS平台兼容
|
||||
window.getIosAccessOriginParam = renderFun
|
||||
|
||||
try {
|
||||
if (window.app && window.app.uploadImgFile) {
|
||||
console.log('使用uploadImgFile')
|
||||
console.log('使用window.app.uploadImgFile')
|
||||
// 使用注入的方法
|
||||
const result = window.app.uploadImgFile()
|
||||
console.log('uploadImgFile 返回结果:', result)
|
||||
console.log('uploadImgFile返回结果:', result)
|
||||
renderFun(result)
|
||||
} else if (window.FlutterPageControl) {
|
||||
// 直接使用Flutter通道
|
||||
window.FlutterPageControl.postMessage(`正在调用uploadImgFile`)
|
||||
window.FlutterPageControl.postMessage(`需要调用uploadImgFile`)
|
||||
} else {
|
||||
// 降级处理
|
||||
const mockAccess = JSON.stringify('')
|
||||
renderFun(mockAccess)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('上传图片失败:', error)
|
||||
console.error('调出图片选择界面失败:', error)
|
||||
// 异常情况下的兜底处理
|
||||
const mockAccess = JSON.stringify('')
|
||||
renderFun(mockAccess)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -62,8 +62,7 @@
|
||||
style="display: block; width: 15vw; aspect-ratio: 1/1; object-fit: cover"
|
||||
/>
|
||||
<button
|
||||
v-if="isInAppEnvironment"
|
||||
@click="callNativeImagePicker"
|
||||
@click="onClickImagePicker"
|
||||
style="
|
||||
position: absolute;
|
||||
top: 0;
|
||||
@ -75,7 +74,7 @@
|
||||
border: none;
|
||||
"
|
||||
></button>
|
||||
<input
|
||||
<!-- <input
|
||||
v-else
|
||||
type="file"
|
||||
accept="image/*"
|
||||
@ -90,7 +89,7 @@
|
||||
opacity: 0;
|
||||
cursor: pointer;
|
||||
"
|
||||
/>
|
||||
/> -->
|
||||
</div>
|
||||
|
||||
<img
|
||||
@ -231,6 +230,16 @@ const checkStatus = computed(() => {
|
||||
return applyInfo.value.contactNumber != '' && previewUrls.value.length > 0
|
||||
})
|
||||
|
||||
// 点击图片选择按钮
|
||||
const onClickImagePicker = async () => {
|
||||
try {
|
||||
await callNativeImagePicker()
|
||||
} catch (error) {
|
||||
console.error('图片选择失败:', error)
|
||||
// 可以在这里添加额外的错误处理逻辑
|
||||
}
|
||||
}
|
||||
|
||||
// 调用原生图片选择器
|
||||
const callNativeImagePicker = () => {
|
||||
console.log('调用原生图片选择器')
|
||||
@ -238,7 +247,7 @@ const callNativeImagePicker = () => {
|
||||
// 最多3张图片
|
||||
if (previewUrls.value.length >= 3) {
|
||||
showWarning(t('max_images_warning'))
|
||||
return Promise.resolve() // 或者返回 rejected Promise
|
||||
return Promise.reject(new Error('Maximum number of images reached'))
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
@ -258,16 +267,16 @@ const callNativeImagePicker = () => {
|
||||
const file = result.data
|
||||
console.log('接收到原生图片数据:', file)
|
||||
|
||||
// 生成预览图(需要根据实际数据格式调整)
|
||||
if (typeof file === 'string' && (file.startsWith('http') || file.startsWith('data:'))) {
|
||||
// 如果是URL或base64数据
|
||||
previewUrls.value.push(file)
|
||||
tempFiles.value.push(file) // 保存原始数据用于上传
|
||||
} else {
|
||||
// 如果是文件对象或其他格式,需要相应处理
|
||||
previewUrls.value.push(file)
|
||||
tempFiles.value.push(file)
|
||||
}
|
||||
// // 生成预览图(需要根据实际数据格式调整)
|
||||
// if (typeof file === 'string' && (file.startsWith('http') || file.startsWith('data:'))) {
|
||||
// // 如果是URL或base64数据
|
||||
// previewUrls.value.push(file)
|
||||
// tempFiles.value.push(file) // 保存原始数据用于上传
|
||||
// } else {
|
||||
// // 如果是文件对象或其他格式,需要相应处理
|
||||
// previewUrls.value.push(file)
|
||||
// tempFiles.value.push(file)
|
||||
// }
|
||||
|
||||
showSuccess(t('image_selected_success'))
|
||||
resolve()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user