feat: 确保缓存连接时也重新写入请求头,并等待连接后的初始化回调,并加强 Android 等待 window.app 注入的逻辑

This commit is contained in:
hzj 2026-05-08 17:43:55 +08:00
parent 168ee5c475
commit 16c9bb70c0
2 changed files with 15 additions and 5 deletions

View File

@ -150,13 +150,22 @@ function handleAndroidPlatform(renderFun) {
if (window.app) { if (window.app) {
debugLog('检测到window.app开始连接') debugLog('检测到window.app开始连接')
waitForFlutterInterface() waitForFlutterInterface()
} else if (checkCount < 50) { } else if (checkCount < 150) {
if (
(checkCount === 1 || checkCount % 20 === 0) &&
window.FlutterPageControl &&
window.FlutterPageControl.postMessage
) {
window.FlutterPageControl.postMessage('requestAccessOrigin')
}
setTimeout(checkApp, 100) setTimeout(checkApp, 100)
} else { } else {
errorLog('等待window.app超时') errorLog('等待window.app超时')
// 手动通知Flutter注入接口 // 手动通知Flutter注入接口
if (window.FlutterApp && window.FlutterApp.postMessage) { if (window.FlutterApp && window.FlutterApp.postMessage) {
window.FlutterApp.postMessage('requestAccessOrigin') window.FlutterApp.postMessage('requestAccessOrigin')
} else if (window.FlutterPageControl && window.FlutterPageControl.postMessage) {
window.FlutterPageControl.postMessage('requestAccessOrigin')
} }
} }
} }

View File

@ -67,7 +67,7 @@ export const connectToApp = async (onConnected, onFailed = defaultOnFailed) => {
console.groupEnd() console.groupEnd()
await fetchUserInfoAfterConnection() //获取用户信息 await fetchUserInfoAfterConnection() //获取用户信息
if (onConnected) onConnected() // 触发连接成功回调 if (onConnected) await onConnected() // 触发连接成功回调
return { success: true, environment: 'browser' } // 浏览器环境 return { success: true, environment: 'browser' } // 浏览器环境
} }
@ -80,12 +80,13 @@ export const connectToApp = async (onConnected, onFailed = defaultOnFailed) => {
const cachedHeaderInfo = getAppHeaderInfo() const cachedHeaderInfo = getAppHeaderInfo()
if (cachedHeaderInfo) { if (cachedHeaderInfo) {
console.debug('🔧 Using cached HTTP headers') console.debug('🔧 Using cached HTTP headers')
await setHttpHeaders(cachedHeaderInfo)
} }
console.groupEnd() console.groupEnd()
await fetchUserInfoAfterConnection() //获取用户信息 await fetchUserInfoAfterConnection() //获取用户信息
if (onConnected) onConnected() // 触发连接成功回调 if (onConnected) await onConnected() // 触发连接成功回调
return { success: true, environment: 'app', fromCache: true } // APP环境 return { success: true, environment: 'app', fromCache: true } // APP环境
} }
@ -98,7 +99,7 @@ export const connectToApp = async (onConnected, onFailed = defaultOnFailed) => {
console.groupEnd() console.groupEnd()
await fetchUserInfoAfterConnection() //获取用户信息 await fetchUserInfoAfterConnection() //获取用户信息
if (onConnected) onConnected() // 触发连接成功回调 if (onConnected) await onConnected() // 触发连接成功回调
return { success: true, environment: 'app', fromCache: true } // APP环境 return { success: true, environment: 'app', fromCache: true } // APP环境
} }
@ -148,7 +149,7 @@ export const connectToApp = async (onConnected, onFailed = defaultOnFailed) => {
console.groupEnd() console.groupEnd()
await fetchUserInfoAfterConnection() //获取用户信息 await fetchUserInfoAfterConnection() //获取用户信息
if (onConnected) onConnected() // 触发连接成功回调 if (onConnected) await onConnected() // 触发连接成功回调
return connectionResult return connectionResult
} catch (error) { } catch (error) {