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