• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.router (页面路由)(不推荐)
2
3本模块提供通过不同的url访问不同的页面,包括跳转到应用内的指定页面、同应用内的某个页面替换当前页面、返回上一页面或指定的页面等。
4
5推荐使用[Navigation组件](../../ui/arkts-navigation-navigation.md)作为应用路由框架。
6
7> **说明**
8>
9> - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10>
11> - 页面路由需要在页面渲染完成之后才能调用,在onInit和onReady生命周期中页面还处于渲染阶段,禁止调用页面路由方法。
12>
13> - 本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用,参见[UIContext](./js-apis-arkui-UIContext.md#uicontext)说明。
14>
15> - 如果使用传入callback形式的[pushUrl](js-apis-arkui-UIContext.md#pushurl-1)或[pushNamedRoute](js-apis-arkui-UIContext.md#pushnamedroute-1)接口,callback中通过[getLength](js-apis-arkui-UIContext.md#getlength)等接口获取的栈信息为中间态的栈信息,可能与栈操作完全结束后,再通过[getLength](js-apis-arkui-UIContext.md#getlength)等接口获取的栈信息不一致。
16
17## 导入模块
18
19```
20import { router } from '@kit.ArkUI';
21```
22
23## router.pushUrl<sup>(deprecated)</sup>
24
25pushUrl(options: RouterOptions): Promise&lt;void&gt;
26
27跳转到应用内的指定页面。
28
29> **说明:**
30>
31> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[pushUrl](js-apis-arkui-UIContext.md#pushurl)。
32>
33> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
34
35**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
36
37**系统能力:** SystemCapability.ArkUI.ArkUI.Full
38
39**参数:**
40
41| 参数名     | 类型                              | 必填   | 说明        |
42| ------- | ------------------------------- | ---- | --------- |
43| options | [RouterOptions](#routeroptions) | 是    | 跳转页面描述信息。 |
44
45**返回值:**
46
47| 类型                | 说明        |
48| ------------------- | --------- |
49| Promise&lt;void&gt; | 异常返回结果。 |
50
51**错误码:**
52
53以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
54> **说明**:
55>
56> 该接口返回的以下错误码均为string类型。
57
58| 错误码ID   | 错误信息 |
59| --------- | ------- |
60| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
61| 100001    | Internal error. |
62| 100002    | Uri error. The URI of the page to redirect is incorrect or does not exist. |
63| 100003    | Page stack error. Too many pages are pushed. |
64
65**示例:**
66
67```ts
68import { BusinessError } from '@kit.BasicServicesKit';
69
70class innerParams {
71  data3: number[]
72
73  constructor(tuple: number[]) {
74    this.data3 = tuple
75  }
76}
77
78class routerParams {
79  data1: string
80  data2: innerParams
81
82  constructor(str: string, tuple: number[]) {
83    this.data1 = str
84    this.data2 = new innerParams(tuple)
85  }
86}
87
88router.pushUrl({
89  url: 'pages/routerpage2',
90  params: new routerParams('message', [123, 456, 789])
91})
92  .then(() => {
93    console.error(`pushUrl finish`);
94  })
95  .catch((err: ESObject) => {
96    console.error(`pushUrl failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
97  })
98```
99
100## router.pushUrl<sup>(deprecated)</sup>
101
102pushUrl(options: RouterOptions, callback: AsyncCallback&lt;void&gt;): void
103
104跳转到应用内的指定页面。
105
106> **说明:**
107>
108> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[pushUrl](js-apis-arkui-UIContext.md#pushurl-1)。
109>
110> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
111
112**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
113
114**系统能力:** SystemCapability.ArkUI.ArkUI.Full
115
116**参数:**
117
118| 参数名     | 类型                              | 必填   | 说明        |
119| ------- | ------------------------------- | ---- | --------- |
120| options | [RouterOptions](#routeroptions) | 是    | 跳转页面描述信息。 |
121| callback | AsyncCallback&lt;void&gt;      | 是   | 异常响应回调。   |
122
123**错误码:**
124
125以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
126> **说明**:
127>
128> 该接口返回的以下错误码均为string类型。
129
130| 错误码ID   | 错误信息 |
131| --------- | ------- |
132| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
133| 100001    | Internal error. |
134| 100002    | Uri error. The URI of the page to redirect is incorrect or does not exist. |
135| 100003    | Page stack error. Too many pages are pushed. |
136
137**示例:**
138
139```ts
140class innerParams {
141  data3: number[]
142
143  constructor(tuple: number[]) {
144    this.data3 = tuple
145  }
146}
147
148class routerParams {
149  data1: string
150  data2: innerParams
151
152  constructor(str: string, tuple: number[]) {
153    this.data1 = str
154    this.data2 = new innerParams(tuple)
155  }
156}
157
158router.pushUrl({
159  url: 'pages/routerpage2',
160  params: new routerParams('message', [123, 456, 789])
161}, (err) => {
162  if (err) {
163    console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`);
164    return;
165  }
166  console.info('pushUrl success');
167})
168```
169## router.pushUrl<sup>(deprecated)</sup>
170
171pushUrl(options: RouterOptions, mode: RouterMode): Promise&lt;void&gt;
172
173跳转到应用内的指定页面。
174
175> **说明:**
176>
177> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[pushUrl](js-apis-arkui-UIContext.md#pushurl-2)。
178>
179> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
180
181**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
182
183**系统能力:** SystemCapability.ArkUI.ArkUI.Full
184
185**参数:**
186
187| 参数名     | 类型                              | 必填   | 说明         |
188| ------- | ------------------------------- | ---- | ---------- |
189| options | [RouterOptions](#routeroptions) | 是    | 跳转页面描述信息。  |
190| mode    | [RouterMode](#routermode9)      | 是    | 跳转页面使用的模式。 |
191
192**返回值:**
193
194| 类型                | 说明        |
195| ------------------- | --------- |
196| Promise&lt;void&gt; | 异常返回结果。 |
197
198**错误码:**
199
200以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
201> **说明**:
202>
203> 该接口返回的以下错误码均为string类型。
204
205| 错误码ID   | 错误信息 |
206| --------- | ------- |
207| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
208| 100001    | Internal error. |
209| 100002    | Uri error. The URI of the page to redirect is incorrect or does not exist. |
210| 100003    | Page stack error. Too many pages are pushed. |
211
212**示例:**
213
214```ts
215import { BusinessError } from '@kit.BasicServicesKit';
216
217class innerParams {
218  data3: number[]
219
220  constructor(tuple: number[]) {
221    this.data3 = tuple
222  }
223}
224
225class routerParams {
226  data1: string
227  data2: innerParams
228
229  constructor(str: string, tuple: number[]) {
230    this.data1 = str
231    this.data2 = new innerParams(tuple)
232  }
233}
234
235router.pushUrl({
236  url: 'pages/routerpage2',
237  params: new routerParams('message', [123, 456, 789])
238}, router.RouterMode.Standard)
239  .then(() => {
240    console.error(`pushUrl finish`);
241  })
242  .catch((err: ESObject) => {
243    console.error(`pushUrl failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
244  })
245```
246
247## router.pushUrl<sup>(deprecated)</sup>
248
249pushUrl(options: RouterOptions, mode: RouterMode, callback: AsyncCallback&lt;void&gt;): void
250
251跳转到应用内的指定页面。
252
253> **说明:**
254>
255> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[pushUrl](js-apis-arkui-UIContext.md#pushurl-3)。
256>
257> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
258
259**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
260
261**系统能力:** SystemCapability.ArkUI.ArkUI.Full
262
263**参数:**
264
265| 参数名     | 类型                              | 必填   | 说明         |
266| ------- | ------------------------------- | ---- | ---------- |
267| options | [RouterOptions](#routeroptions) | 是    | 跳转页面描述信息。  |
268| mode    | [RouterMode](#routermode9)      | 是    | 跳转页面使用的模式。 |
269| callback | AsyncCallback&lt;void&gt;      | 是   | 异常响应回调。   |
270
271**错误码:**
272
273以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
274> **说明**:
275>
276> 该接口返回的以下错误码均为string类型。
277
278| 错误码ID   | 错误信息 |
279| --------- | ------- |
280| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
281| 100001    | Internal error. |
282| 100002    | Uri error. The URI of the page to redirect is incorrect or does not exist. |
283| 100003    | Page stack error. Too many pages are pushed. |
284
285**示例:**
286
287```ts
288class innerParams {
289  data3: number[]
290
291  constructor(tuple: number[]) {
292    this.data3 = tuple
293  }
294}
295
296class routerParams {
297  data1: string
298  data2: innerParams
299
300  constructor(str: string, tuple: number[]) {
301    this.data1 = str
302    this.data2 = new innerParams(tuple)
303  }
304}
305
306router.pushUrl({
307  url: 'pages/routerpage2',
308  params: new routerParams('message', [123, 456, 789])
309}, router.RouterMode.Standard, (err) => {
310  if (err) {
311    console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`);
312    return;
313  }
314  console.info('pushUrl success');
315})
316```
317
318## router.replaceUrl<sup>(deprecated)</sup>
319
320replaceUrl(options: RouterOptions): Promise&lt;void&gt;
321
322用应用内的某个页面替换当前页面,并销毁被替换的页面。不支持设置页面转场动效,如需设置,推荐使用[Navigation组件](../../ui/arkts-navigation-navigation.md)。
323
324> **说明:**
325>
326> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[replaceUrl](js-apis-arkui-UIContext.md#replaceurl)。
327>
328> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
329
330**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
331
332**系统能力:** SystemCapability.ArkUI.ArkUI.Lite
333
334**参数:**
335
336| 参数名  | 类型                            | 必填 | 说明               |
337| ------- | ------------------------------- | ---- | ------------------ |
338| options | [RouterOptions](#routeroptions) | 是   | 替换页面描述信息。 |
339
340**返回值:**
341
342| 类型                | 说明        |
343| ------------------- | --------- |
344| Promise&lt;void&gt; | 异常返回结果。 |
345
346**错误码:**
347
348以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
349> **说明**:
350>
351> 该接口返回的以下错误码均为string类型。
352
353| 错误码ID   | 错误信息 |
354| --------- | ------- |
355| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
356| 100001    | The UI execution context is not found. This error code is thrown only in the standard system. |
357| 200002    | Uri error. The URI of the page to be used for replacement is incorrect or does not exist. |
358
359**示例:**
360
361```ts
362import { BusinessError } from '@kit.BasicServicesKit';
363
364class routerParams {
365  data1: string
366
367  constructor(str: string) {
368    this.data1 = str
369  }
370}
371
372router.replaceUrl({
373  url: 'pages/detail',
374  params: new routerParams('message')
375})
376  .then(() => {
377    console.error(`replaceUrl finish`);
378  })
379  .catch((err: ESObject) => {
380    console.error(`replaceUrl failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
381  })
382```
383
384## router.replaceUrl<sup>(deprecated)</sup>
385
386replaceUrl(options: RouterOptions, callback: AsyncCallback&lt;void&gt;): void
387
388用应用内的某个页面替换当前页面,并销毁被替换的页面。
389
390> **说明:**
391>
392> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[replaceUrl](js-apis-arkui-UIContext.md#replaceurl-1)。
393>
394> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
395
396**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
397
398**系统能力:** SystemCapability.ArkUI.ArkUI.Lite
399
400**参数:**
401
402| 参数名  | 类型                            | 必填 | 说明               |
403| ------- | ------------------------------- | ---- | ------------------ |
404| options | [RouterOptions](#routeroptions) | 是   | 替换页面描述信息。 |
405| callback | AsyncCallback&lt;void&gt;      | 是   | 异常响应回调。   |
406
407**错误码:**
408
409以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
410> **说明**:
411>
412> 该接口返回的以下错误码均为string类型。
413
414| 错误码ID   | 错误信息 |
415| --------- | ------- |
416| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
417| 100001    | The UI execution context is not found. This error code is thrown only in the standard system. |
418| 200002    | Uri error. The URI of the page to be used for replacement is incorrect or does not exist. |
419
420**示例:**
421
422```ts
423class routerParams {
424  data1: string
425
426  constructor(str: string) {
427    this.data1 = str
428  }
429}
430
431router.replaceUrl({
432  url: 'pages/detail',
433  params: new routerParams('message')
434}, (err) => {
435  if (err) {
436    console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`);
437    return;
438  }
439  console.info('replaceUrl success');
440})
441```
442
443## router.replaceUrl<sup>(deprecated)</sup>
444
445replaceUrl(options: RouterOptions, mode: RouterMode): Promise&lt;void&gt;
446
447用应用内的某个页面替换当前页面,并销毁被替换的页面。
448
449> **说明:**
450>
451> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[replaceUrl](js-apis-arkui-UIContext.md#replaceurl-2)。
452>
453> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
454
455**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
456
457**系统能力:** SystemCapability.ArkUI.ArkUI.Lite
458
459**参数:**
460
461| 参数名     | 类型                              | 必填   | 说明         |
462| ------- | ------------------------------- | ---- | ---------- |
463| options | [RouterOptions](#routeroptions) | 是    | 替换页面描述信息。  |
464| mode    | [RouterMode](#routermode9)      | 是    | 跳转页面使用的模式。 |
465
466
467**返回值:**
468
469| 类型                | 说明        |
470| ------------------- | --------- |
471| Promise&lt;void&gt; | 异常返回结果。 |
472
473**错误码:**
474
475以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
476> **说明**:
477>
478> 该接口返回的以下错误码均为string类型。
479
480| 错误码ID   | 错误信息 |
481| --------- | ------- |
482| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
483| 100001    | Failed to get the delegate. This error code is thrown only in the standard system. |
484| 200002    | Uri error. The URI of the page to be used for replacement is incorrect or does not exist. |
485
486**示例:**
487
488```ts
489import { BusinessError } from '@kit.BasicServicesKit';
490
491class routerParams {
492  data1:string
493
494  constructor(str:string) {
495    this.data1 = str
496  }
497}
498
499router.replaceUrl({
500  url: 'pages/detail',
501  params: new routerParams('message')
502}, router.RouterMode.Standard)
503  .then(() => {
504    console.error(`replaceUrl finish`);
505  })
506  .catch((err: ESObject) => {
507    console.error(`replaceUrl failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
508  })
509```
510
511## router.replaceUrl<sup>(deprecated)</sup>
512
513replaceUrl(options: RouterOptions, mode: RouterMode, callback: AsyncCallback&lt;void&gt;): void
514
515用应用内的某个页面替换当前页面,并销毁被替换的页面。
516
517> **说明:**
518>
519> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[replaceUrl](js-apis-arkui-UIContext.md#replaceurl-3)。
520>
521> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
522
523**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
524
525**系统能力:** SystemCapability.ArkUI.ArkUI.Lite
526
527**参数:**
528
529| 参数名     | 类型                              | 必填   | 说明         |
530| ------- | ------------------------------- | ---- | ---------- |
531| options | [RouterOptions](#routeroptions) | 是    | 替换页面描述信息。  |
532| mode    | [RouterMode](#routermode9)      | 是    | 跳转页面使用的模式。 |
533| callback | AsyncCallback&lt;void&gt;      | 是   | 异常响应回调。   |
534
535**错误码:**
536
537以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
538> **说明**:
539>
540> 该接口返回的以下错误码均为string类型。
541
542| 错误码ID   | 错误信息 |
543| --------- | ------- |
544| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
545| 100001    | The UI execution context is not found. This error code is thrown only in the standard system. |
546| 200002    | Uri error. The URI of the page to be used for replacement is incorrect or does not exist. |
547
548**示例:**
549
550```ts
551class routerParams {
552  data1: string
553
554  constructor(str: string) {
555    this.data1 = str
556  }
557}
558
559router.replaceUrl({
560  url: 'pages/detail',
561  params: new routerParams('message')
562}, router.RouterMode.Standard, (err) => {
563  if (err) {
564    console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`);
565    return;
566  }
567  console.info('replaceUrl success');
568});
569```
570
571## router.pushNamedRoute<sup>(deprecated)</sup>
572
573pushNamedRoute(options: NamedRouterOptions): Promise&lt;void&gt;
574
575跳转到指定的命名路由页面。
576
577> **说明:**
578>
579> 从API version 10开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[pushNamedRoute](js-apis-arkui-UIContext.md#pushnamedroute)。
580>
581> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
582
583**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
584
585**系统能力:** SystemCapability.ArkUI.ArkUI.Full
586
587**参数:**
588
589| 参数名     | 类型                              | 必填   | 说明        |
590| ------- | ------------------------------- | ---- | --------- |
591| options | [NamedRouterOptions](#namedrouteroptions10) | 是    | 跳转页面描述信息。 |
592
593**返回值:**
594
595| 类型                | 说明        |
596| ------------------- | --------- |
597| Promise&lt;void&gt; | 异常返回结果。 |
598
599**错误码:**
600
601以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
602> **说明**:
603>
604> 该接口返回的以下错误码均为string类型。
605
606| 错误码ID   | 错误信息 |
607| --------- | ------- |
608| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
609| 100001    | Internal error. |
610| 100003    | Page stack error. Too many pages are pushed. |
611| 100004    | Named route error. The named route does not exist. |
612
613**示例:**
614
615```ts
616import { BusinessError } from '@kit.BasicServicesKit';
617
618class innerParams {
619  data3: number[]
620
621  constructor(tuple: number[]) {
622    this.data3 = tuple
623  }
624}
625
626class routerParams {
627  data1: string
628  data2: innerParams
629
630  constructor(str: string, tuple: number[]) {
631    this.data1 = str
632    this.data2 = new innerParams(tuple)
633  }
634}
635
636router.pushNamedRoute({
637  name: 'myPage',
638  params: new routerParams('message', [123, 456, 789])
639})
640  .then(() => {
641    console.error(`pushNamedRoute finish`);
642  })
643  .catch((err: ESObject) => {
644    console.error(`pushNamedRoute failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
645  })
646```
647
648详细示例请参考:[UI开发-页面路由](../../ui/arkts-routing.md#命名路由)
649
650## router.pushNamedRoute<sup>(deprecated)</sup>
651
652pushNamedRoute(options: NamedRouterOptions, callback: AsyncCallback&lt;void&gt;): void
653
654跳转到指定的命名路由页面。
655
656> **说明:**
657>
658> 从API version 10开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[pushNamedRoute](js-apis-arkui-UIContext.md#pushnamedroute-1)。
659>
660> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
661
662**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
663
664**系统能力:** SystemCapability.ArkUI.ArkUI.Full
665
666**参数:**
667
668| 参数名     | 类型                              | 必填   | 说明        |
669| ------- | ------------------------------- | ---- | --------- |
670| options | [NamedRouterOptions](#namedrouteroptions10) | 是    | 跳转页面描述信息。 |
671| callback | AsyncCallback&lt;void&gt;      | 是   | 异常响应回调。   |
672
673**错误码:**
674
675以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
676> **说明**:
677>
678> 该接口返回的以下错误码均为string类型。
679
680| 错误码ID   | 错误信息 |
681| --------- | ------- |
682| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
683| 100001    | Internal error. |
684| 100003    | Page stack error. Too many pages are pushed. |
685| 100004    | Named route error. The named route does not exist. |
686
687**示例:**
688
689```ts
690class innerParams {
691  data3: number[]
692
693  constructor(tuple: number[]) {
694    this.data3 = tuple
695  }
696}
697
698class routerParams {
699  data1: string
700  data2: innerParams
701
702  constructor(str: string, tuple: number[]) {
703    this.data1 = str
704    this.data2 = new innerParams(tuple)
705  }
706}
707
708router.pushNamedRoute({
709  name: 'myPage',
710  params: new routerParams('message', [123, 456, 789])
711}, (err) => {
712  if (err) {
713    console.error(`pushNamedRoute failed, code is ${err.code}, message is ${err.message}`);
714    return;
715  }
716  console.info('pushNamedRoute success');
717})
718```
719## router.pushNamedRoute<sup>(deprecated)</sup>
720
721pushNamedRoute(options: NamedRouterOptions, mode: RouterMode): Promise&lt;void&gt;
722
723跳转到指定的命名路由页面。
724
725> **说明:**
726>
727> 从API version 10开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[pushNamedRoute](js-apis-arkui-UIContext.md#pushnamedroute-2)。
728>
729> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
730
731**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
732
733**系统能力:** SystemCapability.ArkUI.ArkUI.Full
734
735**参数:**
736
737| 参数名     | 类型                              | 必填   | 说明         |
738| ------- | ------------------------------- | ---- | ---------- |
739| options | [NamedRouterOptions](#namedrouteroptions10) | 是    | 跳转页面描述信息。  |
740| mode    | [RouterMode](#routermode9)      | 是    | 跳转页面使用的模式。 |
741
742**返回值:**
743
744| 类型                | 说明        |
745| ------------------- | --------- |
746| Promise&lt;void&gt; | 异常返回结果。 |
747
748**错误码:**
749
750以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
751> **说明**:
752>
753> 该接口返回的以下错误码均为string类型。
754
755| 错误码ID   | 错误信息 |
756| --------- | ------- |
757| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
758| 100001    | Internal error. |
759| 100003    | Page stack error. Too many pages are pushed. |
760| 100004    | Named route error. The named route does not exist. |
761
762**示例:**
763
764```ts
765import { BusinessError } from '@kit.BasicServicesKit';
766
767class innerParams {
768  data3: number[]
769
770  constructor(tuple: number[]) {
771    this.data3 = tuple
772  }
773}
774
775class routerParams {
776  data1: string
777  data2: innerParams
778
779  constructor(str: string, tuple: number[]) {
780    this.data1 = str
781    this.data2 = new innerParams(tuple)
782  }
783}
784
785router.pushNamedRoute({
786  name: 'myPage',
787  params: new routerParams('message', [123, 456, 789])
788}, router.RouterMode.Standard)
789  .then(() => {
790    console.error(`pushNamedRoute finish`);
791  })
792  .catch((err: ESObject) => {
793    console.error(`pushNamedRoute failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
794  })
795```
796
797## router.pushNamedRoute<sup>(deprecated)</sup>
798
799pushNamedRoute(options: NamedRouterOptions, mode: RouterMode, callback: AsyncCallback&lt;void&gt;): void
800
801跳转到指定的命名路由页面。
802
803> **说明:**
804>
805> 从API version 10开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[pushNamedRoute](js-apis-arkui-UIContext.md#pushnamedroute-3)。
806>
807> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
808
809**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
810
811**系统能力:** SystemCapability.ArkUI.ArkUI.Full
812
813**参数:**
814
815| 参数名     | 类型                              | 必填   | 说明         |
816| ------- | ------------------------------- | ---- | ---------- |
817| options | [NamedRouterOptions](#namedrouteroptions10) | 是    | 跳转页面描述信息。  |
818| mode    | [RouterMode](#routermode9)      | 是    | 跳转页面使用的模式。 |
819| callback | AsyncCallback&lt;void&gt;      | 是   | 异常响应回调。   |
820
821**错误码:**
822
823以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
824> **说明**:
825>
826> 该接口返回的以下错误码均为string类型。
827
828| 错误码ID   | 错误信息 |
829| --------- | ------- |
830| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
831| 100001    | Internal error. |
832| 100003    | Page stack error. Too many pages are pushed. |
833| 100004    | Named route error. The named route does not exist. |
834
835**示例:**
836
837```ts
838class innerParams {
839  data3: number[]
840
841  constructor(tuple: number[]) {
842    this.data3 = tuple
843  }
844}
845
846class routerParams {
847  data1: string
848  data2: innerParams
849
850  constructor(str: string, tuple: number[]) {
851    this.data1 = str
852    this.data2 = new innerParams(tuple)
853  }
854}
855
856router.pushNamedRoute({
857  name: 'myPage',
858  params: new routerParams('message', [123, 456, 789])
859}, router.RouterMode.Standard, (err) => {
860  if (err) {
861    console.error(`pushNamedRoute failed, code is ${err.code}, message is ${err.message}`);
862    return;
863  }
864  console.info('pushNamedRoute success');
865})
866```
867
868## router.replaceNamedRoute<sup>(deprecated)</sup>
869
870replaceNamedRoute(options: NamedRouterOptions): Promise&lt;void&gt;
871
872用指定的命名路由页面替换当前页面,并销毁被替换的页面。
873
874> **说明:**
875>
876> 从API version 10开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[replaceNamedRoute](js-apis-arkui-UIContext.md#replacenamedroute)。
877>
878> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
879
880**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
881
882**系统能力:** SystemCapability.ArkUI.ArkUI.Full
883
884**参数:**
885
886| 参数名  | 类型                            | 必填 | 说明               |
887| ------- | ------------------------------- | ---- | ------------------ |
888| options | [NamedRouterOptions](#namedrouteroptions10) | 是   | 替换页面描述信息。 |
889
890**返回值:**
891
892| 类型                | 说明        |
893| ------------------- | --------- |
894| Promise&lt;void&gt; | 异常返回结果。 |
895
896**错误码:**
897
898以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
899> **说明**:
900>
901> 该接口返回的以下错误码均为string类型。
902
903| 错误码ID   | 错误信息 |
904| --------- | ------- |
905| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
906| 100001    | The UI execution context is not found. This error code is thrown only in the standard system. |
907| 100004    | Named route error. The named route does not exist. |
908
909**示例:**
910
911```ts
912import { BusinessError } from '@kit.BasicServicesKit';
913
914class routerParams {
915  data1: string
916
917  constructor(str: string) {
918    this.data1 = str
919  }
920}
921
922router.replaceNamedRoute({
923  name: 'myPage',
924  params: new routerParams('message')
925})
926  .then(() => {
927    console.error(`replaceNamedRoute finish`);
928  })
929  .catch((err: ESObject) => {
930    console.error(`replaceNamedRoute failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
931  })
932```
933
934## router.replaceNamedRoute<sup>(deprecated)</sup>
935
936replaceNamedRoute(options: NamedRouterOptions, callback: AsyncCallback&lt;void&gt;): void
937
938用指定的命名路由页面替换当前页面,并销毁被替换的页面。
939
940> **说明:**
941>
942> 从API version 10开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[replaceNamedRoute](js-apis-arkui-UIContext.md#replacenamedroute-1)。
943>
944> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
945
946**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
947
948**系统能力:** SystemCapability.ArkUI.ArkUI.Full
949
950**参数:**
951
952| 参数名  | 类型                            | 必填 | 说明               |
953| ------- | ------------------------------- | ---- | ------------------ |
954| options | [NamedRouterOptions](#namedrouteroptions10) | 是   | 替换页面描述信息。 |
955| callback | AsyncCallback&lt;void&gt;      | 是   | 异常响应回调。   |
956
957**错误码:**
958
959以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
960> **说明**:
961>
962> 该接口返回的以下错误码均为string类型。
963
964| 错误码ID   | 错误信息 |
965| --------- | ------- |
966| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
967| 100001    | The UI execution context is not found. This error code is thrown only in the standard system. |
968| 100004    | Named route error. The named route does not exist. |
969
970**示例:**
971
972```ts
973class routerParams {
974  data1: string
975
976  constructor(str: string) {
977    this.data1 = str
978  }
979}
980
981router.replaceNamedRoute({
982  name: 'myPage',
983  params: new routerParams('message')
984}, (err) => {
985  if (err) {
986    console.error(`replaceNamedRoute failed, code is ${err.code}, message is ${err.message}`);
987    return;
988  }
989  console.info('replaceNamedRoute success');
990})
991```
992
993## router.replaceNamedRoute<sup>(deprecated)</sup>
994
995replaceNamedRoute(options: NamedRouterOptions, mode: RouterMode): Promise&lt;void&gt;
996
997用指定的命名路由页面替换当前页面,并销毁被替换的页面。
998
999> **说明:**
1000>
1001> 从API version 10开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[replaceNamedRoute](js-apis-arkui-UIContext.md#replacenamedroute-2)。
1002>
1003> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1004
1005**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1006
1007**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1008
1009**参数:**
1010
1011| 参数名     | 类型                              | 必填   | 说明         |
1012| ------- | ------------------------------- | ---- | ---------- |
1013| options | [NamedRouterOptions](#namedrouteroptions10) | 是    | 替换页面描述信息。  |
1014| mode    | [RouterMode](#routermode9)      | 是    | 跳转页面使用的模式。 |
1015
1016
1017**返回值:**
1018
1019| 类型                | 说明        |
1020| ------------------- | --------- |
1021| Promise&lt;void&gt; | 异常返回结果。 |
1022
1023**错误码:**
1024
1025以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
1026> **说明**:
1027>
1028> 该接口返回的以下错误码均为string类型。
1029
1030| 错误码ID   | 错误信息 |
1031| --------- | ------- |
1032| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
1033| 100001    | Failed to get the delegate. This error code is thrown only in the standard system. |
1034| 100004    | Named route error. The named route does not exist. |
1035
1036**示例:**
1037
1038```ts
1039import { BusinessError } from '@kit.BasicServicesKit';
1040
1041class routerParams {
1042  data1: string
1043
1044  constructor(str: string) {
1045    this.data1 = str
1046  }
1047}
1048
1049router.replaceNamedRoute({
1050  name: 'myPage',
1051  params: new routerParams('message')
1052}, router.RouterMode.Standard)
1053  .then(() => {
1054    console.error(`replaceNamedRoute finish`);
1055  })
1056  .catch((err: ESObject) => {
1057    console.error(`replaceNamedRoute failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
1058  })
1059```
1060
1061## router.replaceNamedRoute<sup>(deprecated)</sup>
1062
1063replaceNamedRoute(options: NamedRouterOptions, mode: RouterMode, callback: AsyncCallback&lt;void&gt;): void
1064
1065用指定的命名路由页面替换当前页面,并销毁被替换的页面。
1066
1067> **说明:**
1068>
1069> 从API version 10开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[replaceNamedRoute](js-apis-arkui-UIContext.md#replacenamedroute-3)。
1070>
1071> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1072
1073**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1074
1075**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1076
1077**参数:**
1078
1079| 参数名     | 类型                              | 必填   | 说明         |
1080| ------- | ------------------------------- | ---- | ---------- |
1081| options | [NamedRouterOptions](#namedrouteroptions10) | 是    | 替换页面描述信息。  |
1082| mode    | [RouterMode](#routermode9)      | 是    | 跳转页面使用的模式。 |
1083| callback | AsyncCallback&lt;void&gt;      | 是   | 异常响应回调。   |
1084
1085**错误码:**
1086
1087以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
1088> **说明**:
1089>
1090> 该接口返回的以下错误码均为string类型。
1091
1092| 错误码ID   | 错误信息 |
1093| --------- | ------- |
1094| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
1095| 100001    | The UI execution context is not found. This error code is thrown only in the standard system. |
1096| 100004    | Named route error. The named route does not exist. |
1097
1098**示例:**
1099
1100```ts
1101class routerParams {
1102  data1: string
1103
1104  constructor(str: string) {
1105    this.data1 = str
1106  }
1107}
1108
1109router.replaceNamedRoute({
1110  name: 'myPage',
1111  params: new routerParams('message')
1112}, router.RouterMode.Standard, (err) => {
1113  if (err) {
1114    console.error(`replaceNamedRoute failed, code is ${err.code}, message is ${err.message}`);
1115    return;
1116  }
1117  console.info('replaceNamedRoute success');
1118});
1119```
1120
1121## router.back<sup>(deprecated)</sup>
1122
1123back(options?: RouterOptions ): void
1124
1125返回上一页面或指定的页面,会删除当前页面与指定页面之间的所有页面。
1126
1127> **说明:**
1128>
1129> 从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[back](js-apis-arkui-UIContext.md#back)。
1130>
1131> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1132
1133**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1134
1135**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1136
1137**参数:**
1138
1139| 参数名  | 类型                            | 必填 | 说明                                                         |
1140| ------- | ------------------------------- | ---- | ------------------------------------------------------------ |
1141| options | [RouterOptions](#routeroptions) | 否   | 返回页面描述信息,其中参数url指路由跳转时会返回到指定url的界面,如果页面栈上没有url页面,则不响应该情况。如果url未设置,则返回上一页,页面不会重新构建,页面栈里面的page不会回收,出栈后会被回收。back是返回接口,url设置为特殊值"/"不生效。如果是用命名路由的方式跳转,传入的url需是命名路由的名称。 |
1142
1143**示例:**
1144
1145```ts
1146this.getUIContext().getRouter().back({ url: 'pages/detail' });
1147```
1148
1149## router.back<sup>(deprecated)</sup>
1150
1151back(index: number, params?: Object): void;
1152
1153返回指定的页面,会删除当前页面与指定页面之间的所有页面。
1154
1155> **说明:**
1156>
1157> 从API version 12开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[back](js-apis-arkui-UIContext.md#back12)。
1158>
1159> 从API version 12开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1160
1161**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1162
1163**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1164
1165**参数:**
1166
1167| 参数名     | 类型                              | 必填   | 说明         |
1168| ------- | ------------------------------- | ---- | ---------- |
1169| index | number | 是    | 跳转目标页面的索引值。 从栈底到栈顶,index从1开始递增。 |
1170| params    | Object      | 否    | 页面返回时携带的参数。 |
1171
1172**示例:**
1173
1174```ts
1175this.getUIContext().getRouter().back(1);
1176```
1177```ts
1178this.getUIContext().getRouter().back(1, { info: '来自Home页' }); //携带参数返回
1179```
1180
1181## router.clear<sup>(deprecated)</sup>
1182
1183clear(): void
1184
1185清空页面栈中的所有历史页面,仅保留当前页面作为栈顶页面。
1186
1187> **说明:**
1188>
1189> 从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[clear](js-apis-arkui-UIContext.md#clear)。
1190>
1191> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1192
1193**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1194
1195**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1196
1197**示例:**
1198
1199```ts
1200this.getUIContext().getRouter().clear();
1201```
1202
1203## router.getLength<sup>(deprecated)</sup>
1204
1205getLength(): string
1206
1207获取当前在页面栈内的页面数量。
1208
1209> **说明:**
1210>
1211> 从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[getLength](js-apis-arkui-UIContext.md#getlength)。
1212>
1213> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1214
1215**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1216
1217**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1218
1219**返回值:**
1220
1221| 类型     | 说明                 |
1222| ------ | ------------------ |
1223| string | 页面数量,页面栈支持最大数值是32。 |
1224
1225**示例:**
1226
1227```ts
1228let size = this.getUIContext().getRouter().getLength();
1229console.log('pages stack size = ' + size);
1230```
1231
1232## router.getState<sup>(deprecated)</sup>
1233
1234getState(): RouterState
1235
1236获取栈顶页面的状态信息。
1237
1238> **说明:**
1239>
1240> 从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[getState](js-apis-arkui-UIContext.md#getstate)。
1241>
1242> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1243
1244**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1245
1246**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1247
1248**返回值:**
1249
1250| 类型                          | 说明      |
1251| --------------------------- | ------- |
1252| [RouterState](#routerstate) | 页面状态信息。 |
1253
1254**示例:**
1255
1256```ts
1257let page = this.getUIContext().getRouter().getState();
1258console.log('current index = ' + page.index);
1259console.log('current name = ' + page.name);
1260console.log('current path = ' + page.path);
1261```
1262
1263## router.getStateByIndex<sup>(deprecated)</sup>
1264
1265getStateByIndex(index: number): RouterState | undefined
1266
1267通过索引值获取对应页面的状态信息。
1268
1269> **说明:**
1270>
1271> 从API version 12开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[getStateByIndex](js-apis-arkui-UIContext.md#getstatebyindex12)。
1272>
1273> 从API version 12开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1274
1275**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1276
1277**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1278
1279**参数:**
1280
1281| 参数名     | 类型                              | 必填   | 说明         |
1282| ------- | ------------------------------- | ---- | ---------- |
1283| index    | number | 是   | 表示要获取的页面索引。从栈底到栈顶,index从1开始递增。 |
1284
1285**返回值:**
1286
1287| 类型                          | 说明      |
1288| --------------------------- | ------- |
1289| [RouterState](#routerstate) \| undefined | 返回页面状态信息。索引不存在时返回undefined。 |
1290
1291**示例:**
1292
1293```ts
1294let options: router.RouterState | undefined = router.getStateByIndex(1);
1295if (options != undefined) {
1296  console.log('index = ' + options.index);
1297  console.log('name = ' + options.name);
1298  console.log('path = ' + options.path);
1299  console.log('params = ' + options.params);
1300}
1301```
1302## router.getStateByUrl<sup>(deprecated)</sup>
1303
1304getStateByUrl(url: string): Array&lt;RouterState&gt;
1305
1306通过url获取对应页面的状态信息。
1307
1308> **说明:**
1309>
1310> 从API version 12开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[getStateByUrl](js-apis-arkui-UIContext.md#getstatebyurl12)。
1311>
1312> 从API version 12开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1313
1314**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1315
1316**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1317
1318**参数:**
1319
1320| 参数名     | 类型                              | 必填   | 说明         |
1321| ------- | ------------------------------- | ---- | ---------- |
1322| url    | string | 是   | 表示要获取对应页面信息的url。  |
1323
1324**返回值:**
1325
1326| 类型                          | 说明      |
1327| --------------------------- | ------- |
1328| Array<[RouterState](#routerstate)> | 页面状态信息。 |
1329
1330**示例:**
1331
1332```ts
1333let options: Array<router.RouterState> = router.getStateByUrl('pages/index');
1334for (let i: number = 0; i < options.length; i++) {
1335  console.log('index = ' + options[i].index);
1336  console.log('name = ' + options[i].name);
1337  console.log('path = ' + options[i].path);
1338  console.log('params = ' + options[i].params);
1339}
1340```
1341
1342## RouterState
1343
1344页面状态信息。
1345
1346**系统能力:** SystemCapability.ArkUI.ArkUI.Full1347
1348| 名称  | 类型   | 必填 | 说明                                                         |
1349| ----- | ------ | ---- | ------------------------------------------------------------ |
1350| index | number | 是   | 表示当前页面在页面栈中的索引。从栈底到栈顶,index从1开始递增。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
1351| name  | string | 是  | 表示当前页面的名称,即对应文件名。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
1352| path  | string | 是   | 表示当前页面的路径。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
1353| params<sup>12+</sup>  | Object |  是  | 表示当前页面携带的参数。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                         |
1354
1355## router.showAlertBeforeBackPage<sup>(deprecated)</sup>
1356
1357showAlertBeforeBackPage(options: EnableAlertOptions): void
1358
1359开启页面返回询问对话框。
1360
1361> **说明:**
1362>
1363> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[showAlertBeforeBackPage](js-apis-arkui-UIContext.md#showalertbeforebackpage)。
1364>
1365> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1366
1367**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1368
1369**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1370
1371**参数:**
1372
1373| 参数名     | 类型                                       | 必填   | 说明        |
1374| ------- | ---------------------------------------- | ---- | --------- |
1375| options | [EnableAlertOptions](#enablealertoptions) | 是    | 文本弹窗信息描述。 |
1376
1377**错误码:**
1378
1379以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.router(页面路由)](errorcode-router.md)错误码。
1380
1381| 错误码ID   | 错误信息 |
1382| --------- | ------- |
1383| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed.   |
1384| 100001    | Internal error. |
1385
1386**示例:**
1387
1388```ts
1389import { BusinessError } from '@kit.BasicServicesKit';
1390
1391try {
1392  this.getUIContext().getRouter().showAlertBeforeBackPage({
1393    message: 'Message Info'
1394  });
1395} catch (err) {
1396  console.error(`showAlertBeforeBackPage failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
1397}
1398```
1399## EnableAlertOptions
1400
1401页面返回询问对话框选项。
1402
1403**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1404
1405**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full1406
1407| 名称      | 类型     | 必填   | 说明       |
1408| ------- | ------ | ---- | -------- |
1409| message | string | 是    | 询问对话框内容。 |
1410
1411## router.hideAlertBeforeBackPage<sup>(deprecated)</sup>
1412
1413hideAlertBeforeBackPage(): void
1414
1415禁用页面返回询问对话框。
1416
1417> **说明:**
1418>
1419> 从API version 9开始支持,从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[hideAlertBeforeBackPage](js-apis-arkui-UIContext.md#hidealertbeforebackpage)。
1420>
1421> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1422
1423**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1424
1425**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1426
1427**示例:**
1428
1429```ts
1430this.getUIContext().getRouter().hideAlertBeforeBackPage();
1431```
1432
1433##  router.getParams<sup>(deprecated)</sup>
1434
1435getParams(): Object
1436
1437获取发起跳转的页面往当前页传入的参数。
1438
1439> **说明:**
1440>
1441> 从API version 18开始废弃,建议使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)获取[Router](js-apis-arkui-UIContext.md#router)实例,再通过此实例调用替代方法[getParams](js-apis-arkui-UIContext.md#getparams)。
1442>
1443> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getRouter](js-apis-arkui-UIContext.md#getrouter)方法获取当前UI上下文关联的[Router](js-apis-arkui-UIContext.md#router)对象。
1444
1445**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1446
1447**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1448
1449**返回值:**
1450
1451| 类型   | 说明                               |
1452| ------ | ---------------------------------- |
1453| object | 发起跳转的页面往当前页传入的参数。 |
1454
1455**示例:**
1456
1457```ts
1458this.getUIContext().getRouter().getParams();
1459```
1460
1461## RouterOptions
1462
1463路由跳转选项。
1464
1465**系统能力:** SystemCapability.ArkUI.ArkUI.Lite1466
1467| 名称   | 类型   | 必填 | 说明                                                         |
1468| ------ | ------ | ---- | ------------------------------------------------------------ |
1469| url    | string | 是   | 表示目标页面的url,可以用以下两种格式:<br/>-&nbsp;页面绝对路径,由配置文件中pages列表提供,例如:<br/>&nbsp;&nbsp;-&nbsp;pages/index/index<br/>&nbsp;&nbsp;-&nbsp;pages/detail/detail<br/>-&nbsp;特殊值,如果url的值是"/",则跳转到首页,首页默认为页面跳转配置项src数组的第一个数据项。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
1470| params | Object | 否   | 表示路由跳转时要同时传递到目标页面的数据,切换到其他页面时,当前接收的数据失效。跳转到目标页面后,使用router.getParams()获取传递的参数,此外,在类web范式中,参数也可以在页面中直接使用,如this.keyValue(keyValue为跳转时params参数中的key值),如果目标页面中已有该字段,则其值会被传入的字段值覆盖。<br/>**说明:** <br/>params参数不能传递方法和系统接口返回的对象(例如,媒体接口定义和返回的PixelMap对象)。建议开发者提取系统接口返回的对象中需要被传递的基础类型属性,自行构造object类型对象进行传递。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
1471| recoverable<sup>14+</sup> | boolean | 否   | 表示对应的页面是否可恢复,默认为true,表示可恢复。<br/>**说明:** <br/> 当应用退到后台,并且在未来的某个时间点,由于系统资源限制等原因被系统杀死,如果某个页面被设置成可恢复,那么该应用再次被拉到前台后系统可以恢复出页面,详细说明请参考[UIAbility备份恢复](../../application-models/ability-recover-guideline.md)。 |
1472
1473  > **说明:**
1474  > 页面路由栈支持的最大Page数量为32。
1475
1476## RouterMode<sup>9+</sup>
1477
1478路由跳转模式。
1479
1480**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1481
1482**系统能力:** SystemCapability.ArkUI.ArkUI.Full1483
1484| 名称     | 值 | 说明                                                         |
1485| -------- | --- | ------------------------------------------------------------ |
1486| Standard | 0 | 多实例模式,也是默认情况下的跳转模式。 <br/>目标页面会被添加到页面栈顶,无论栈中是否存在相同url的页面。<br/>**说明:**  <br/>不使用路由跳转模式时,则按照默认的多实例模式进行跳转。 |
1487| Single   | 1 | 单实例模式。<br/>如果目标页面的url已经存在于页面栈中,则该url页面移动到栈顶。<br />如果目标页面的url在页面栈中不存在同url页面,则按照默认的多实例模式进行跳转。 |
1488
1489## NamedRouterOptions<sup>10+</sup>
1490
1491命名路由跳转选项。
1492
1493| 名称   | 类型   | 必填 | 说明                                                         |
1494| ------ | ------ | ---- | ------------------------------------------------------------ |
1495| name   | string | 是   | 表示目标命名路由页面的name。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br/>**系统能力:** SystemCapability.ArkUI.ArkUI.Full |
1496| params | Object | 否   | 表示路由跳转时要同时传递到目标页面的数据。跳转到目标页面后,使用router.getParams()获取传递的参数,此外,在类web范式中,参数也可以在页面中直接使用,如this.keyValue(keyValue为跳转时params参数中的key值),如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 <br/>**说明:** <br/>params参数不能传递方法和系统接口返回的对象(例如,媒体接口定义和返回的PixelMap对象)。建议开发者提取系统接口返回的对象中需要被传递的基础类型属性,自行构造object类型对象进行传递。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。<br/>**系统能力:** SystemCapability.ArkUI.ArkUI.Full  |
1497| recoverable<sup>14+</sup> | boolean | 否   | 表示对应的页面是否可恢复,默认为true,表示可恢复。<br/>**说明:** <br/> 当应用退到后台,并且在未来的某个时间点,由于系统资源限制等原因被系统杀死,如果某个页面被设置成可恢复,那么该应用再次被拉到前台后系统可以恢复出页面,详细说明请参考[UIAbility备份恢复](../../application-models/ability-recover-guideline.md)。 <br/>**系统能力:** SystemCapability.ArkUI.ArkUI.Lite |
1498
1499## 完整示例
1500
1501### 基于JS扩展的类Web开发范式
1502
1503以下代码仅适用于javascript文件,不适用于ArkTS文件
1504
1505<!--code_no_check-->
1506
1507```js
1508// 在当前页面中
1509export default {
1510  pushPage() {
1511    router.pushUrl({
1512      url: 'pages/detail/detail',
1513      params: {
1514        data1: 'message'
1515      }
1516    });
1517  }
1518}
1519```
1520<!--code_no_check-->
1521
1522```js
1523// 在detail页面中
1524export default {
1525  onInit() {
1526    console.info('showData1:' + this.getUIContext().getRouter().getParams()['data1']);
1527  }
1528}
1529```
1530
1531### 基于TS扩展的声明式开发范式
1532
1533> **说明:**
1534>
1535> 直接使用router可能导致实例不明确的问题,建议使用[getUIContext](js-apis-arkui-UIContext.md#uicontext)获取UIContext实例,并使用[getRouter](js-apis-arkui-UIContext.md#getrouter)获取绑定实例的router。
1536
1537<!--deperecated_code_no_check-->
1538```ts
1539// 通过router.pushUrl跳转至目标页携带params参数
1540import { router } from '@kit.ArkUI';
1541import { BusinessError } from '@kit.BasicServicesKit'
1542
1543// 定义传递参数的类
1544class innerParams {
1545  array: number[]
1546
1547  constructor(tuple: number[]) {
1548    this.array = tuple
1549  }
1550}
1551
1552class routerParams {
1553  text: string
1554  data: innerParams
1555
1556  constructor(str: string, tuple: number[]) {
1557    this.text = str
1558    this.data = new innerParams(tuple)
1559  }
1560}
1561
1562@Entry
1563@Component
1564struct Index {
1565  async routePage() {
1566    let options: router.RouterOptions = {
1567      url: 'pages/second',
1568      params: new routerParams('这是第一页的值', [12, 45, 78])
1569    }
1570    // 建议使用this.getUIContext().getRouter().pushUrl()
1571    router.pushUrl(options)
1572      .then(() => {
1573        console.error(`pushUrl finish`);
1574      })
1575      .catch((err: ESObject) => {
1576        console.error(`pushUrl failed, code is ${(err as BusinessError).code}, message is ${(err as BusinessError).message}`);
1577      })
1578    }
1579
1580  build() {
1581    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
1582      Text('这是第一页')
1583        .fontSize(50)
1584        .fontWeight(FontWeight.Bold)
1585      Button() {
1586        Text('next page')
1587          .fontSize(25)
1588          .fontWeight(FontWeight.Bold)
1589      }.type(ButtonType.Capsule)
1590      .margin({ top: 20 })
1591      .backgroundColor('#ccc')
1592      .onClick(() => {
1593        this.routePage()
1594      })
1595    }
1596    .width('100%')
1597    .height('100%')
1598  }
1599}
1600```
1601
1602```ts
1603// 在second页面中接收传递过来的参数
1604import { router } from '@kit.ArkUI';
1605
1606class innerParams {
1607  array: number[]
1608
1609  constructor(tuple: number[]) {
1610    this.array = tuple
1611  }
1612}
1613
1614class routerParams {
1615  text: string
1616  data: innerParams
1617
1618  constructor(str: string, tuple: number[]) {
1619    this.text = str
1620    this.data = new innerParams(tuple)
1621  }
1622}
1623
1624@Entry
1625@Component
1626struct Second {
1627  private content: string = "这是第二页"
1628  // 建议使用this.getUIContext().getRouter().getParams()
1629  @State text: string = (this.getUIContext().getRouter().getParams() as routerParams).text
1630  @State data: object = (this.getUIContext().getRouter().getParams() as routerParams).data
1631  @State secondData: string = ''
1632
1633  build() {
1634    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
1635      Text(`${this.content}`)
1636        .fontSize(50)
1637        .fontWeight(FontWeight.Bold)
1638      Text(this.text)
1639        .fontSize(30)
1640        .onClick(() => {
1641          this.secondData = (this.data['array'][1]).toString()
1642        })
1643        .margin({ top: 20 })
1644      Text(`第一页传来的数值:${this.secondData}`)
1645        .fontSize(20)
1646        .margin({ top: 20 })
1647        .backgroundColor('red')
1648    }
1649    .width('100%')
1650    .height('100%')
1651  }
1652}
1653```
1654
1655## router.push<sup>(deprecated)</sup>
1656
1657push(options: RouterOptions): void
1658
1659跳转到应用内的指定页面。
1660
1661从API version9开始不再维护,建议使用[pushUrl](js-apis-arkui-UIContext.md#pushurl)
1662
1663**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1664
1665**参数:**
1666
1667| 参数名     | 类型                              | 必填   | 说明        |
1668| ------- | ------------------------------- | ---- | --------- |
1669| options | [RouterOptions](#routeroptions) | 是    | 跳转页面描述信息。 |
1670
1671
1672**示例:**
1673
1674```ts
1675class innerParams {
1676  data3: number[]
1677
1678  constructor(tuple: number[]) {
1679    this.data3 = tuple
1680  }
1681}
1682
1683class routerParams {
1684  data1: string
1685  data2: innerParams
1686
1687  constructor(str: string, tuple: number[]) {
1688    this.data1 = str
1689    this.data2 = new innerParams(tuple)
1690  }
1691}
1692
1693router.push({
1694  url: 'pages/routerpage2',
1695  params: new routerParams('message', [123, 456, 789])
1696});
1697```
1698
1699## router.replace<sup>(deprecated)</sup>
1700
1701replace(options: RouterOptions): void
1702
1703用应用内的某个页面替换当前页面,并销毁被替换的页面。
1704
1705从API version9开始不再维护,建议使用[replaceUrl](js-apis-arkui-UIContext.md#replaceurl)
1706
1707**系统能力:** SystemCapability.ArkUI.ArkUI.Lite
1708
1709**参数:**
1710
1711| 参数名  | 类型                            | 必填 | 说明               |
1712| ------- | ------------------------------- | ---- | ------------------ |
1713| options | [RouterOptions](#routeroptions) | 是   | 替换页面描述信息。 |
1714
1715**示例:**
1716
1717```ts
1718class routerParams {
1719  data1: string
1720
1721  constructor(str: string) {
1722    this.data1 = str
1723  }
1724}
1725
1726router.replace({
1727  url: 'pages/detail',
1728  params: new routerParams('message')
1729});
1730```
1731
1732## router.enableAlertBeforeBackPage<sup>(deprecated)</sup>
1733
1734enableAlertBeforeBackPage(options: EnableAlertOptions): void
1735
1736开启页面返回询问对话框。
1737
1738从API version9开始不再维护,建议使用[showAlertBeforeBackPage](js-apis-arkui-UIContext.md#showalertbeforebackpage)
1739
1740**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1741
1742**参数:**
1743
1744| 参数名     | 类型                                       | 必填   | 说明        |
1745| ------- | ---------------------------------------- | ---- | --------- |
1746| options | [EnableAlertOptions](#enablealertoptions) | 是    | 文本弹窗信息描述。 |
1747
1748**示例:**
1749
1750```ts
1751router.enableAlertBeforeBackPage({
1752  message: 'Message Info'
1753});
1754```
1755
1756## router.disableAlertBeforeBackPage<sup>(deprecated)</sup>
1757
1758disableAlertBeforeBackPage(): void
1759
1760禁用页面返回询问对话框。
1761
1762从API version9开始不再维护,建议使用[hideAlertBeforeBackPage](js-apis-arkui-UIContext.md#hidealertbeforebackpage)
1763
1764**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1765
1766**示例:**
1767
1768```ts
1769router.disableAlertBeforeBackPage();
1770```