2016-11-10 29 views
7

Vì một số vấn đề về hiệu suất, tôi đang cố gắng nâng cấp ứng dụng angularJS2/phonegap để sử dụng WKWebView trên iOS.Điều hướng bộ định tuyến góc 2.0 không hoạt động trên iOS WKWebView

Thật không may, mọi cuộc gọi đến điều hướng tuyến đường đều không hoạt động. Điều này bao gồm các cuộc gọi routerlinkthis.route.navigate. Không có lỗi nào bị ném. Có ai khác nhìn thấy điều này và/hoặc có lẽ có một workaround?

Mã hoạt động tốt bằng UIWebView bình thường.

Tôi là người mới tương đối với Angular nên mọi đề xuất đều được hoan nghênh.

Đây là những gì một số mã có liên quan trông giống như: mô-đun

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); 
    } 
} 

định tuyến:

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 { } 

Để đáp lại bình luận dưới đây:

Như đã đề cập, đây là một ứng dụng PhoneGap, vì vậy hầu hết các tài liệu tham khảo đang sử dụng (tôi giả định) các tập tin: giao thức. Tuy nhiên, trang đầu tiên tải không sao và nó tham chiếu nội dung trong một tệp JavaScript duy nhất. Điều kỳ lạ là tất cả nội dung được tham chiếu bộ định tuyến khác cũng nằm trong cùng một tệp JavaScript đó.

Tôi đã hy vọng rằng ai đó sẽ hiểu các hạt và bu lông của hành vi bộ định tuyến để giải thích lý do tại sao nó không hoạt động trong môi trường này.

+0

Vui lòng chỉ cho tôi mã của bạn. –

+0

nếu bạn đang sử dụng tuyến đường con hơn u cần phải nhập RouterModule. và vui lòng thêm một số mã để chúng tôi có thể giúp bạn. –

+0

Tôi đã thêm một số mã, nhưng điểm là nó hoạt động tốt trong UIWebView, nhưng không thành công trong WKWebView. –

Trả lời

1

Bạn có đang truy cập thông qua máy chủ web hoặc tệp: // giao thức không? Có vẻ như wkwebview có vấn đề với điều đó.

See this article

+0

cảm ơn thông tin. Tôi đã thêm một số chi tiết vào câu hỏi .... –

+0

@Mike nếu bạn nhìn vào bài viết, nó đề cập đến Cordova tải trang chỉ mục thì không có gì xảy ra "Tải trang chỉ mục Apple trong iOS 9 khắc phục sự cố bạn không thể Đây là lý do chính Cordova đã có thể thêm hỗ trợ chính thức cho WKWebView trong iOS 9. Vì vậy, trang chỉ mục của bạn xuất hiện trong WKWebView, sau đó ... không có gì khác hoạt động. " "WKWebView: có vẻ như để xử lý các tệp cục bộ giống như chúng đến từ một máy chủ từ xa, mặc dù chúng nằm trong chính ứng dụng và các yêu cầu đó bị chặn". Vì PhoneGap là Cordova, hãy thử cài đặt máy chủ cục bộ. – PersyJack

+0

Tôi đã đọc bài viết và tôi đã quen với vấn đề này. Tuy nhiên, nó không nên áp dụng vì tất cả các tệp .js nằm trong một tệp và tệp đó đã được tải. Tôi đã hy vọng một ai đó ra có một số kiến ​​thức bên trong của hành vi router và có thể giải thích những gì đang xảy ra .. Tôi đánh giá cao sự giúp đỡ mặc dù ... –

Các vấn đề liên quan