- ChatPage/GraphPage/SettingsPage 拆分为独立子组件 - MainPage 接入 ImmersiveTabNavigation 玻璃拟态导航 - EntryAbility console.* 全替换为 defaultLogger - SplashPage replaceUrl 废弃 API 迁移到 UIContext Router - common/Index.ets 双通道导出 Logger/defaultLogger - 删除 dead code (entry/, commonbusiness/, trulymem-core/) - 全工程 0 console.*,BUILD SUCCESSFUL
57 lines
1.5 KiB
Plaintext
57 lines
1.5 KiB
Plaintext
import { defaultLogger } from '../util/Logger';
|
|
|
|
export interface RouterParam {
|
|
routerName: string;
|
|
param?: object;
|
|
}
|
|
|
|
export interface IPageContext {
|
|
openPage(data: RouterParam, animated?: boolean): void;
|
|
popPage(animated?: boolean): void;
|
|
replacePage(data: RouterParam, animated?: boolean): void;
|
|
}
|
|
|
|
export class PageContext implements IPageContext {
|
|
private readonly pathStack: NavPathStack;
|
|
|
|
constructor() {
|
|
this.pathStack = new NavPathStack();
|
|
}
|
|
|
|
public get navPathStack(): NavPathStack {
|
|
return this.pathStack;
|
|
}
|
|
|
|
public replacePage(data: RouterParam, animated: boolean = true): void {
|
|
try {
|
|
this.pathStack.replacePath({ name: data.routerName, param: data.param }, animated);
|
|
} catch (err) {
|
|
defaultLogger.error('replacePage: ' + data.routerName + ' failed. ' + err.code + ' ' + err.message);
|
|
}
|
|
}
|
|
|
|
public openPage(data: RouterParam, animated: boolean = true): void {
|
|
try {
|
|
this.pathStack.pushPath({ name: data.routerName, param: data.param }, animated);
|
|
} catch (err) {
|
|
defaultLogger.error('openPage: ' + data.routerName + ' failed. ' + err.code + ' ' + err.message);
|
|
}
|
|
}
|
|
|
|
public popPage(animated: boolean = true): void {
|
|
try {
|
|
this.pathStack.pop(animated);
|
|
} catch (err) {
|
|
defaultLogger.error('popPage failed. ' + err.code + ' ' + err.message);
|
|
}
|
|
}
|
|
|
|
public popPageByIndex(index: number, animated: boolean = true): void {
|
|
this.pathStack.popToIndex(index, animated);
|
|
}
|
|
|
|
public clear(animated: boolean = true): void {
|
|
this.pathStack.clear(animated);
|
|
}
|
|
}
|