test14(KYC页): 测试图片上传方式
This commit is contained in:
parent
497f520cf3
commit
ff27fd080c
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user