Angular 2.0路由器导航无法在iOS WKWebView上运行

Mik*_*e M 8 cordova angular-ui-router wkwebview angular

由于一些性能问题,我正在尝试升级angularJS2/phonegap应用程序以在iOS上使用WKWebView.

不幸的是,任何对路线导航的调用都不起作用.这包括routerlinkthis.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);
    }
}
Run Code Online (Sandbox Code Playgroud)

路由模块:

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 { }
Run Code Online (Sandbox Code Playgroud)

回应以下评论:

如上所述,这是一个phonegap应用程序,所以大多数引用都使用(我假设)文件:协议.但是,第一页加载正常,它引用单个JavaScript文件中的内容.奇怪的是,所有其他路由器引用的内容也在同一个JavaScript文件中.

我希望有人能理解路由器行为的具体细节,以解释为什么它在这种环境下不起作用.

Per*_*ack 2

您是通过网络服务器还是 file:// 协议访问它?看来 wkwebview 有问题。

看这篇文章