Skip to content

Commit 41aeaf2

Browse files
committed
[ohos]支持传入启动参数和dart入口参数
1 parent 1c7b7c9 commit 41aeaf2

File tree

4 files changed

+18
-2
lines changed

4 files changed

+18
-2
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
## NEXT
2+
1. [ohos]支持传入启动参数和dart入口参数
23

34
## 4.5.3
45
1. [ohos]移除不必要的生命周期通知

example/ohos/entry/src/main/ets/entryability/EntryAbility.ets

+2
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ export default class EntryAbility extends UIAbility implements FlutterBoostDeleg
7777
FlutterManager.getInstance().pushWindowStage(this, windowStage)
7878

7979
const optionsBuilder: FlutterBoostSetupOptionsBuilder = new FlutterBoostSetupOptionsBuilder()
80+
.setShellArgs(['--trace-systrace', '--user-authorization-code=QZvoUptODA+KDgeFUluhheYns7X7CnDu9YRv8YmU0GXQcKLzs4C2WgjblrAIhtkqqGg=='])
81+
.setDartEntrypointArgs(['I am from ohos!', '--for-test'])
8082
.setPlugins(GeneratedPluginRegistrant.getPlugins())
8183

8284
FlutterBoost.getInstance().setup(this, this.context, () => {

ohos/flutter_boost/src/main/ets/components/FlutterBoost.ets

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export class FlutterBoost {
8585
}
8686
if (engine == null) {
8787
engine = new FlutterEngine(context, null, null, new PlatformViewsController())
88-
await engine.init(context, null, true, true, null, options.getPlugins())
88+
await engine.init(context, options.getShellArgs(), true, true, null, options.getPlugins())
8989
}
9090
FlutterEngineCache.getInstance().put(FlutterBoost.ENGINE_ID, engine);
9191
}
@@ -108,7 +108,7 @@ export class FlutterBoost {
108108
'',
109109
options.getDartEntrypoint()
110110
);
111-
engine.getDartExecutor().executeDartEntrypoint(dartEntrypoint);
111+
engine.getDartExecutor().executeDartEntrypoint(dartEntrypoint, options.getDartEntrypointArgs());
112112
}
113113

114114
if (callback) {

ohos/flutter_boost/src/main/ets/components/FlutterBoostSetupOptions.ets

+13
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import List from '@ohos.util.List';
2727
export class FlutterBoostSetupOptionsBuilder {
2828
public initialRoute: string = "/";
2929
public dartEntrypoint: string = "main";
30+
public dartEntrypointArgs: string[];
3031
public shouldOverrideBackForegroundEvent: boolean = false;
3132
public shellArgs: string[];
3233
public flutterEngineProvider: FlutterEngineProvider | null
@@ -35,6 +36,7 @@ export class FlutterBoostSetupOptionsBuilder {
3536
constructor() {
3637
this.initialRoute = '/'
3738
this.dartEntrypoint = 'main'
39+
this.dartEntrypointArgs = []
3840
this.shouldOverrideBackForegroundEvent = false
3941
this.shellArgs = []
4042
this.flutterEngineProvider = null
@@ -51,6 +53,11 @@ export class FlutterBoostSetupOptionsBuilder {
5153
return this;
5254
}
5355

56+
public setDartEntrypointArgs(args: string[]): FlutterBoostSetupOptionsBuilder {
57+
this.dartEntrypointArgs = args;
58+
return this;
59+
}
60+
5461
public setShellArgs(shellArgs: string[]): FlutterBoostSetupOptionsBuilder {
5562
this.shellArgs = shellArgs;
5663
return this;
@@ -83,6 +90,7 @@ export class FlutterBoostSetupOptionsBuilder {
8390
export class FlutterBoostSetupOptions {
8491
private readonly initialRoute: string;
8592
private readonly dartEntrypoint: string;
93+
private readonly dartEntrypointArgs: string[];
8694
private readonly shellArgs: string[];
8795
private readonly shouldOverrideBackForegroundEvent: boolean;
8896
private flutterEngineProvider: FlutterEngineProvider | null
@@ -91,6 +99,7 @@ export class FlutterBoostSetupOptions {
9199
public constructor(builder: FlutterBoostSetupOptionsBuilder) {
92100
this.initialRoute = builder.initialRoute;
93101
this.dartEntrypoint = builder.dartEntrypoint;
102+
this.dartEntrypointArgs = builder.dartEntrypointArgs;
94103
this.shellArgs = builder.shellArgs;
95104
this.shouldOverrideBackForegroundEvent = builder.shouldOverrideBackForegroundEvent;
96105
this.flutterEngineProvider = builder.flutterEngineProvider;
@@ -109,6 +118,10 @@ export class FlutterBoostSetupOptions {
109118
return this.dartEntrypoint;
110119
}
111120

121+
public getDartEntrypointArgs(): string[] {
122+
return this.dartEntrypointArgs;
123+
}
124+
112125
public getShellArgs(): string[] {
113126
return this.shellArgs;
114127
}

0 commit comments

Comments
 (0)