@@ -21,7 +21,10 @@ class Inject {
2121 Function proceed) {
2222 debugPrint (
2323 "[Inject] $functionName start ${positionalParams [0 ]} ${positionalParams [1 ]} ${namedParams ["key3" ]}" );
24- Function .apply (proceed, positionalParams, _transToNamedParams (namedParams));
24+
25+ proceed.call (positionalParams[0 ], positionalParams[1 ],
26+ key3: namedParams["key3" ]);
27+ //Function.apply(proceed, positionalParams, _transToNamedParams(namedParams));
2528 }
2629
2730 //普通方法拦截,带返回值
@@ -37,8 +40,11 @@ class Inject {
3740 target, functionName, positionalParams, namedParams, proceed) {
3841 debugPrint (
3942 "[Inject] $functionName start ${positionalParams [0 ]} ${positionalParams [1 ]} ${namedParams ["key3" ]}" );
40- return Function .apply (
41- proceed, positionalParams, _transToNamedParams (namedParams));
43+
44+ return proceed.call (positionalParams[0 ], positionalParams[1 ],
45+ key3: namedParams["key3" ]);
46+ //return Function.apply(
47+ // proceed, positionalParams, _transToNamedParams(namedParams));
4248 }
4349
4450 //普通静态方法拦截,带返回值
@@ -58,8 +64,11 @@ class Inject {
5864 Function proceed) {
5965 debugPrint (
6066 "[Inject] $functionName start ${positionalParams [0 ]} ${positionalParams [1 ]} ${namedParams ["key3" ]}" );
61- return Function .apply (
62- proceed, positionalParams, _transToNamedParams (namedParams));
67+
68+ return proceed.call (positionalParams[0 ], positionalParams[1 ],
69+ key3: namedParams["key3" ]);
70+ //return Function.apply(
71+ // proceed, positionalParams, _transToNamedParams(namedParams));
6372 }
6473
6574 //非类中的方法拦截
@@ -79,8 +88,11 @@ class Inject {
7988 Function proceed) async {
8089 debugPrint (
8190 "[Inject] $functionName start ${positionalParams [0 ]} ${positionalParams [1 ]} ${namedParams ["key3" ]}" );
82- bool success = await Function .apply (
83- proceed, positionalParams, _transToNamedParams (namedParams));
91+
92+ bool success = await proceed.call (positionalParams[0 ], positionalParams[1 ],
93+ key3: namedParams["key3" ]);
94+ //bool success = await Function.apply(
95+ // proceed, positionalParams, _transToNamedParams(namedParams));
8496 debugPrint ("[Inject] $functionName result $success " );
8597 return success;
8698 }
@@ -102,8 +114,10 @@ class Inject {
102114 Function proceed) async {
103115 debugPrint (
104116 "[Inject] $functionName start ${positionalParams [0 ]} ${positionalParams [1 ]} ${namedParams ["key3" ]}" );
105- bool success = await Function .apply (
106- proceed, positionalParams, _transToNamedParams (namedParams));
117+ bool success = await proceed.call (positionalParams[0 ], positionalParams[1 ],
118+ key3: namedParams["key3" ]);
119+ //bool success = await Function.apply(
120+ // proceed, positionalParams, _transToNamedParams(namedParams));
107121 debugPrint ("[Inject] $functionName result $success " );
108122 return success;
109123 }
@@ -126,9 +140,9 @@ class Inject {
126140 Function proceed) {
127141 debugPrint (
128142 "[Inject] $functionName start ${namedParams ["title" ]} ${namedParams ["message" ]}" );
129-
130- return Function .apply (
131- proceed, positionalParams, _transToNamedParams (namedParams));
143+ return proceed. call (positionalParams[ 0 ], message : namedParams[ "message" ]);
144+ // return Function.apply(
145+ // proceed, positionalParams, _transToNamedParams(namedParams));
132146 }
133147
134148 // //全局catch拦截
@@ -157,7 +171,7 @@ class Inject {
157171 })
158172 //必须是static,不然不起作用
159173 //这里需要注意Extension的注入和普通方法不同,methodName的写法也与普遍的不同
160- //Extension中的方法第一个positionalParams[0]所代表的参数是它扩展的实例本身
174+ //Extension中的方法第一个positionalParams[0]所代表的参数是它扩展的实例本身,后面的才是参数
161175 static Future <bool > _injectTest5 (
162176 Object target,
163177 String functionName,
@@ -166,8 +180,12 @@ class Inject {
166180 Function proceed) async {
167181 debugPrint (
168182 "[Inject] $functionName start ${positionalParams [0 ].runtimeType .toString ()} ${positionalParams [1 ]} ${positionalParams [2 ]} ${namedParams ["key3" ]}" );
169- bool success = await Function .apply (
170- proceed, positionalParams, _transToNamedParams (namedParams));
183+
184+ bool success = await proceed.call (
185+ positionalParams[0 ], positionalParams[1 ], positionalParams[2 ],
186+ key3: namedParams["key3" ]);
187+ // bool success = await Function.apply(
188+ // proceed, positionalParams, _transToNamedParams(namedParams));
171189 debugPrint ("[Inject] $functionName result $success " );
172190 return success;
173191 }
@@ -187,9 +205,12 @@ class Inject {
187205 Map <dynamic , dynamic > namedParams,
188206 Function proceed) {
189207 PointerEvent event = positionalParams[0 ];
208+ HitTestResult ? hitTestResult = positionalParams[1 ];
190209 //debugPrint('dispatchEvent - start ${event.kind.name}');
191- return Function .apply (
192- proceed, positionalParams, _transToNamedParams (namedParams));
210+
211+ return proceed.call (event, hitTestResult);
212+ // return Function.apply(
213+ // proceed, positionalParams, _transToNamedParams(namedParams));
193214 }
194215
195216 //Mixin里方法拦截的例子
@@ -209,7 +230,9 @@ class Inject {
209230 Function proceed) async {
210231 debugPrint (
211232 "[Inject] $functionName start ${positionalParams [0 ]} ${positionalParams [1 ]} ${namedParams ["key3" ]}" );
212- Function .apply (proceed, positionalParams, _transToNamedParams (namedParams));
233+ proceed.call (positionalParams[0 ], positionalParams[1 ],
234+ key3: namedParams["key3" ]);
235+ //Function.apply(proceed, positionalParams, _transToNamedParams(namedParams));
213236 }
214237
215238 @pragma ('vm:entry-point' )
@@ -228,7 +251,9 @@ class Inject {
228251 Function proceed) async {
229252 debugPrint (
230253 "[Inject] $functionName start ${positionalParams [0 ]} ${positionalParams [1 ]} ${namedParams ["key3" ]}" );
231- Function .apply (proceed, positionalParams, _transToNamedParams (namedParams));
254+ proceed.call (positionalParams[0 ], positionalParams[1 ],
255+ key3: namedParams["key3" ]);
256+ //Function.apply(proceed, positionalParams, _transToNamedParams(namedParams));
232257 }
233258
234259 @pragma ('vm:entry-point' )
@@ -246,8 +271,11 @@ class Inject {
246271 Map <dynamic , dynamic > namedParams,
247272 Function proceed) async {
248273 debugPrint ("[Inject] $functionName start: ${namedParams ["packageName" ]}" );
249- int result = await Function .apply (
250- proceed, positionalParams, _transToNamedParams (namedParams));
274+
275+ int result = await proceed.call (packageName: namedParams["packageName" ]);
276+
277+ //int result = await Function.apply(
278+ // proceed, positionalParams, _transToNamedParams(namedParams));
251279 debugPrint ("[Inject] $functionName result: $result " );
252280 return result;
253281 }
@@ -267,8 +295,10 @@ class Inject {
267295 Map <dynamic , dynamic > namedParams,
268296 Function proceed) async {
269297 debugPrint ("[Inject] $functionName start: ${namedParams ["packageName" ]}" );
270- int result = await Function .apply (
271- proceed, positionalParams, _transToNamedParams (namedParams));
298+
299+ int result = await proceed.call (packageName: namedParams["packageName" ]);
300+ //int result = await Function.apply(
301+ // proceed, positionalParams, _transToNamedParams(namedParams));
272302 debugPrint ("[Inject] $functionName result: $result " );
273303 return result;
274304 }
@@ -289,8 +319,10 @@ class Inject {
289319 Function proceed) async {
290320 debugPrint (
291321 "[Inject] _injectGetAppVersion22 start: ${namedParams ["packageName" ]}" );
292- int result = await Function .apply (
293- proceed, positionalParams, _transToNamedParams (namedParams));
322+
323+ int result = await proceed.call (packageName: namedParams["packageName" ]);
324+ //int result = await Function.apply(
325+ // proceed, positionalParams, _transToNamedParams(namedParams));
294326 debugPrint ("[Inject] _injectGetAppVersion22 result: $result " );
295327 return result;
296328 }
@@ -310,9 +342,10 @@ class Inject {
310342 Map <dynamic , dynamic > namedParams,
311343 Function proceed) async {
312344 debugPrint ("[Inject] testMixin start" );
345+ return proceed.call ();
313346
314- return Function .apply (
315- proceed, positionalParams, _transToNamedParams (namedParams));
347+ // return Function.apply(
348+ // proceed, positionalParams, _transToNamedParams(namedParams));
316349 }
317350
318351 @pragma ('vm:entry-point' )
@@ -331,18 +364,8 @@ class Inject {
331364 Function proceed) async {
332365 debugPrint (
333366 "[Inject] baseTest start: ${target .runtimeType .toString ()} $functionName " );
334-
335- return Function .apply (
336- proceed, positionalParams, _transToNamedParams (namedParams));
337- }
338-
339- @pragma ('vm:entry-point' )
340- static Map <Symbol , dynamic > _transToNamedParams (
341- Map <dynamic , dynamic > namedParams) {
342- Map <Symbol , dynamic > maps = {};
343- namedParams.forEach ((key, value) {
344- maps[Symbol (key)] = value;
345- });
346- return maps;
367+ return proceed.call ();
368+ //return Function.apply(
369+ // proceed, positionalParams, _transToNamedParams(namedParams));
347370 }
348371}
0 commit comments