Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: release模式下,Android冷启动应用,设置根路由为flutter页面,第一个页面灰屏 #1956

Open
Diya12345678 opened this issue Jan 29, 2024 · 6 comments

Comments

@Diya12345678
Copy link

请描述遇到的问题,以及您所期望的正确的结果

release模式下,Android冷启动应用,设置根路由为flutter页面,第一个页面灰屏

请说明如何操作会遇到上述问题

android冷启动应用image

在下面填入关键复现代码

'/': (settings, uniqueId) {
return CupertinoPageRoute(
settings: settings,
builder: (_) {
return SplashPage();
});
},

复现的平台

Android

Flutter SDK版本

3.16.4

FlutterBoost版本

5.0.1

是否延迟初始化FlutterBoost

No

解决方案

@joechan-cq
Copy link
Collaborator

试试不会要用根路由‘/’,用其他路由来当第一个页面

@Diya12345678
Copy link
Author

试试不会要用根路由‘/’,用其他路由来当第一个页面

我的第一个页面是flutter页面,不能设置“/”,要怎么搞啊?

@joechan-cq
Copy link
Collaborator

启动Flutter页面时,直接传另外的路由啊。比如定义'splash_page':

'splash_page': (settings, uniqueId) {
return CupertinoPageRoute(
settings: settings,
builder: (_) {
return SplashPage();
});
},

然后启动FlutterBoostActivity时,设置splash_page路由:

  Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class)
                    .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
                    .destroyEngineWithActivity(false)
                    .url("splash_page")
                    .urlParams(params)
                    .build(this);
            startActivity(intent);

@joechan-cq
Copy link
Collaborator

启动的Launcher是Flutter页面,就把Launcher继承FlutterBoostActivity,重写getUrl方法,返回"splash_page"

@Diya12345678
Copy link
Author

启动Flutter页面时,直接传另外的路由啊。比如定义'splash_page':

'splash_page': (settings, uniqueId) {
return CupertinoPageRoute(
settings: settings,
builder: (_) {
return SplashPage();
});
},

然后启动FlutterBoostActivity时,设置splash_page路由:

  Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class)
                    .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
                    .destroyEngineWithActivity(false)
                    .url("splash_page")
                    .urlParams(params)
                    .build(this);
            startActivity(intent);

这种方式能解决首次空路由的问题,不过在跳转的时候会有一定的时间差(黑屏),还有就是后台放置久了,应用黑屏了

@justek-Wade
Copy link

遇到了同样的问题,查了很久了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants