在微信公眾號中,打開跳轉鏈接時會,瀏覽器底部分出現一個導航條,導致屏幕空間壓縮。網上有些人給出了js,vue的解決方案,那么我貼一下angular版本的,希望能對你有所幫助。
代碼:
export class RouteWithoutHistory extends PathLocationStrategy {
pushState(state: any, title: string, url: string, queryParams: string): void {}
}
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [
...
],
providers: [
...
{ provide: LocationStrategy, useClass: RouteWithoutHistory},
],
bootstrap: [AppComponent]
})
export class AppModule {}
原理:
底部的導航條是因為wx瀏覽器產生了歷史記錄導致的,所以我們操作的時候不產生歷史記錄就行啦。
最開始,我想到了navigateByUrl中的replaceUrl參數,但這樣做面臨兩個問題:1 改動比較大;2 Ionic的的tab中,沒辦法設置此參數。所以, 要另想它法。
后面我查到,angular與dom管理history這塊與LocationStrategy有關,自已寫一個也比較麻煩。那就繼承默認的LocationStrategy, 然后重載其pushState方法,讓它不再往瀏覽器“通風報信”就好啦。
換做平時,我一定會想了:“我從未聽過如此奇怪的要求”。
