test(KYC页): 测试图片上传方式

This commit is contained in:
hzj 2025-11-12 17:27:25 +08:00
parent 8e4b4d4d6f
commit 7084474298

View File

@ -12,97 +12,20 @@ export function android() {
*/
export function uploadImgFile(renderFun) {
window.renderData = renderFun
// 兼容历史版本
window.getIosAccessOriginParam = renderFun
try {
if (android()) {
console.log('Flutter Android WebView 检测')
console.log('window.app 对象:', window.app)
// 检查Flutter注入的接口
if (window.app) {
console.log('window.app 的所有方法:')
console.log(Object.keys(window.app))
// 检查具体的方法
console.log('uploadImgFile 方法存在?', typeof window.app.uploadImgFile)
console.log('uploadImgFile 是函数?', typeof window.app.uploadImgFile === 'function')
}
// 等待Flutter注入完成
const waitForFlutterInterface = () => {
let attempts = 0
const maxAttempts = 50 // 最多等待5秒
// 循环检测Flutter接口
const checkInterface = () => {
attempts++
console.log(`尝试第 ${attempts} 次检查Flutter接口...`)
if (
window.app &&
window.app.uploadImgFile &&
typeof window.app.uploadImgFile === 'function'
) {
console.log('Flutter接口检测成功调用 uploadImgFile')
try {
const result = window.app.uploadImgFile()
console.log('uploadImgFile 返回结果:', result)
renderFun(result)
} catch (error) {
console.error('调用 uploadImgFile 出错:', error)
}
} else if (attempts < maxAttempts) {
// 继续等待
setTimeout(checkInterface, 100)
} else {
console.error('Flutter接口注入超时使用默认数据')
// 使用默认的开发数据
const mockAccess = JSON.stringify('')
renderFun(mockAccess)
}
}
checkInterface()
}
// 如果window.app已存在直接检查否则等待
if (window.app) {
waitForFlutterInterface()
} else {
console.log('等待Flutter注入window.app...')
// 监听window.app的创建
let checkCount = 0
const checkApp = () => {
checkCount++
if (window.app) {
console.log('检测到window.app开始连接')
waitForFlutterInterface()
} else if (checkCount < 50) {
setTimeout(checkApp, 100)
} else {
console.error('等待window.app超时')
// 手动通知Flutter注入接口
if (window.FlutterApp && window.FlutterApp.postMessage) {
window.FlutterApp.postMessage('uploadImgFile')
}
}
}
checkApp()
}
} else {
console.log('非移动设备环境')
// 非APP环境可能是浏览器调试
console.warn('Not in APP environment, using mock data for development')
// 开发环境可以提供模拟数据
if (process.env.NODE_ENV === 'development') {
const mockAccess = ''
setTimeout(() => renderFun(mockAccess), 100)
}
if (window.app && window.app.uploadImgFile) {
console.log('使用uploadImgFile')
// 使用注入的方法
const result = window.app.uploadImgFile()
console.log('uploadImgFile 返回结果:', result)
renderFun(result)
} else if (window.FlutterPageControl) {
// 直接使用Flutter通道
window.FlutterPageControl.postMessage(`正在调用uploadImgFile`)
}
} catch (error) {
console.error('Failed to connect to APP:', error)
console.error('上传图片失败:', error)
}
}