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

This commit is contained in:
hzj 2025-11-12 19:03:20 +08:00
parent 497f520cf3
commit ff27fd080c

View File

@ -20,11 +20,101 @@ export function uploadImgFile(renderFun) {
if (window.FlutterPageControl) {
console.log('使用window.FlutterPageControl.postMessage(`uploadImgFile`)')
// 直接使用Flutter通道
const result = window.FlutterPageControl.postMessage(`uploadImgFile`)
console.log('result:', result)
// renderFun('')
window.FlutterPageControl.postMessage(`uploadImgFile`)
try {
if (android()) {
console.debug('Flutter Android WebView 检测')
console.debug('window.app 对象:', window.app)
// 检查Flutter注入的接口
if (window.app) {
console.debug('window.app 的所有方法:')
console.debug(Object.keys(window.app))
// 检查具体的方法
console.debug('getAccessOrigin 方法存在?', typeof window.app.getAccessOrigin)
console.debug(
'getAccessOrigin 是函数?',
typeof window.app.getAccessOrigin === 'function'
)
}
// 等待Flutter注入完成
const waitForFlutterInterface = () => {
let attempts = 0
const maxAttempts = 100 // 最多等待5秒
const checkInterface = () => {
attempts++
console.debug(`尝试第 ${attempts} 次检查Flutter接口...`)
if (
window.app &&
window.app.getAccessOrigin &&
typeof window.app.getAccessOrigin === 'function'
) {
console.debug('Flutter接口检测成功调用 getAccessOrigin')
try {
const result = window.app.getAccessOrigin()
console.debug('getAccessOrigin 返回结果:', result)
renderFun(result)
} catch (error) {
console.error('调用 getAccessOrigin 出错:', 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.debug('等待Flutter注入window.app...')
// 监听window.app的创建
let checkCount = 0
const checkApp = () => {
checkCount++
if (window.app) {
console.debug('检测到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('requestAccessOrigin')
}
}
}
checkApp()
}
} else {
console.debug('非移动设备环境')
// 非APP环境可能是浏览器调试
console.warn('Not in APP environment, using mock data for development')
// 开发环境可以提供模拟数据
if (process.env.NODE_ENV === 'development') {
const mockAccess = JSON.stringify({})
setTimeout(() => renderFun(mockAccess), 100)
}
}
} catch (error) {
console.error('Failed to connect to APP:', error)
}
} else {
console.log('window.app.uploadImgFile和window.FlutterPageControl都不存在使用降级处理')
console.log('window.FlutterPageControl不存在')
// 降级处理
const mockAccess = JSON.stringify('')
renderFun(mockAccess)