由於一些性能問題,我正在嘗試升級angularJS2/phonegap應用以在iOS上使用WKWebView。Angular 2.0路由器導航無法在iOS上工作WKWebView
不幸的是,任何路由導航呼叫都不起作用。這包括撥打routerlink
和this.route.navigate
。沒有錯誤被拋出。有沒有其他人看到這個和/或可能有解決方法?
該代碼可以正常使用UIWebView工作。
我是Angular的新手,歡迎任何建議。
下面是一些相關的代碼看起來像:
import { Component } from "@angular/core";
import { Routes, Router, ActivatedRoute } from "@angular/router";
import { LoggedInCallback } from "./service/cognito.service";
export class HomeComponent implements LoggedInCallback {
constructor(public router:Router){
}
isLoggedIn(message:string, isLoggedIn:boolean) {
if (isLoggedIn){
this.router.navigate(['/home/cl']);
}
else {
console.log('HomeComponent: '+message);
}
}
路由模塊:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { CategoryListComponent } from './categorylist/categorylist.component';
const approutes: Routes = [
{
path: 'home/cl',
component: CategoryListComponent
},
...
];
@NgModule({
declarations: [
],
imports: [RouterModule.forRoot(approutes),
BrowserModule,
FormsModule],
exports: [RouterModule]
})
export class AppRoutingModule { }
針對以下評論:
如前所述,這一個PhoneGap的應用程序,所以大部分引用都使用(我假設)file:protocol。但是,第一頁加載沒問題,並且它引用了單個JavaScript文件中的內容。奇怪的是,所有其他路由器引用的內容也都在同一個JavaScript文件中。
我希望有人能夠理解路由器行爲的細節,以解釋爲什麼它在這種環境下無法正常工作。
請給我看你的代碼。 –
如果您使用的子路由比您需要導入RouterModule。並請添加一些代碼,以便我們可以幫助您。 –
我已經添加了一些代碼,但重點是它在UIWebView中正常工作,但在WKWebView中失敗。 –