2016-11-10 132 views
7

由於一些性能問題,我正在嘗試升級angularJS2/phonegap應用以在iOS上使用WKWebView。Angular 2.0路由器導航無法在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); 
    } 
} 

路由模塊:

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文件中。

我希望有人能夠理解路由器行爲的細節,以解釋爲什麼它在這種環境下無法正常工作。

+0

請給我看你的代碼。 –

+0

如果您使用的子路由比您需要導入RouterModule。並請添加一些代碼,以便我們可以幫助您。 –

+0

我已經添加了一些代碼,但重點是它在UIWebView中正常工作,但在WKWebView中失敗。 –

回答

1

你是通過網絡服務器還是file://協議訪問它?看來wkwebview有問題。

See this article

+0

感謝您的信息。我添加了一些更詳細的問題.... –

+0

@Mike如果你看看它提到的文章科爾多瓦加載索引頁,然後沒有任何反應 「加載索引頁 蘋果在iOS 9中修復了一個問題,你不能無法在WKWebView中加載HTML文檔,這是科爾多瓦能夠在iOS 9中爲WKWebView添加官方支持的主要原因。因此,您的索引頁面出現在WKWebView中,那麼......沒有其他的工作。 「WKWebView:它似乎將本地文件視爲來自遠程服務器,即使它們在應用程序本身中,並且此類請求被阻止。」 由於PhoneGap是科爾多瓦嘗試安裝本地服務器。 – PersyJack

+0

我沒看過這篇文章,而且我對這個問題很熟悉。但是,它不應該適用,因爲所有.js都在一個文件中,並且該文件已經加載。我希望有人在那裏有一些路由器行爲的內部知識,並可以解釋發生了什麼..我很欣賞幫助,雖然... –