2016-06-09 4 views
1

나는 나의 페이지에 웹보기를 삽입하고 'loadFinishedEvent'를들을려고 ... 그러나 이렇게, 나는 내 구성 요소에 (TS 파일) 웹보기를 찾을 필요angular2에서 nativescript의 WebView를 사용하는 방법은 무엇입니까? nativescript을 통해,

<Page xmlns="http://schemas.nativescript.org/tns.xsd 

을하지만이 일이 오류가있어 : 방법 내가하는 태그로 내 XML (UI)를 포장 할 필요가 "형식 오류가 : this.page.frame._getNavBarVisible 함수 아니다"를, 그리고없이 이미 몇 가지 방법으로 시도했지만 실패한 페이지 태그 ...

나는 이것에 대한 어떤 샘플도 발견하지 못했다.

답변

0

로드 할 때 eventargs를 getViewById 메소드와 함께 사용하여 컨트롤을 찾으려고 시도 했습니까? 더 많은 정보는 이곳에서 찾을 수 있습니다 - 사용하는 문서에 대한 https://docs.nativescript.org/ui/ui-with-xml

+0

가 작동하지 않습니다, ... 것을 나는 이미 수행하여 그것을 해결 해요 않는의 "각 방법"이유는 <웹보기 [SRC = "URL"(loadFinished) = "loadFinished ($ event)"> (nativescript/Angular 2와 함께 사용하면 안되는) "Page"태그를 제거하십시오. 자세한 내용은 [link] (https://github.com/NativeScript/ nativescript-angular/issues/281) –

+0

@RichardSilveira 답변에 대한 답변을 – ahalls

1

좋은 링크를 WebView Nativescript/Android

HTML :

<WebView #webview [src]="url"></WebView> 

백엔드 코드 :

import {Component, OnInit} from "@angular/core"; 
import {WebView, LoadEventData} from "ui/web-view"; 

@Component({ 
    selector: 'basic-web-view-component', 
    templateUrl: //see html above 
}) 

export class BasicWebViewComponent implements OnInit { 

    public url="https://www.google.com"; 
    @ViewChild("webview") webview: WebView; 

    ngOnInit() { 

     this.webview.on(WebView.loadFinishedEvent, function (args: LoadEventData) { 
      console.log("loadFinishedEvent called"); 
     }); 
    } 
} 

참고 : 웹보기의 요구 것으로 보인다 to width/width 속성은 GridView에 있습니다 (위의 문서 참조). 콘텐츠를 기반으로 동적으로 성장하지는 않습니다.

+0

으로 확장 할 수 있습니까? 구성 요소 코드가 백엔드 코드가 아니라 프론트 엔드입니다. – Sebas

+0

예 백엔드는 불행한 문구이지만 ... HTNL 거짓말 뒤에있는 코드 파일은 종종 백킹 코드라고합니다. 더 나은 용어는 무엇입니까? – ahalls

+0

우리는이 코드를 "프론트 엔드의 백엔드"라고 부릅니다. 이것은 비 개발자가 웹 프론트 엔드가 어떻게 복잡해지고 있는지 이해할 수있게 해줍니다. – Aaron

1

귀하의 .TS 파일을 포함하는 클래스 구현에 대한 추가 정보를 원하시면

import { Component } from "@angular/core"; 

@Component({ 
selector: "Date", 
templateUrl: "myPage.html", //here is your reference to html page 
}) 

export class Angular2WebView { 
//any class function 
} 

귀하의 HTML 파일의 mypage.html

<GridLayout> 
    <WebView id="webView" url="http://www.google.com" > 
    </WebView> 
</GridLayout> 

. 다음 코드로 내가 그것을 해결 Nativescript bare webview doesnt seem to work

1

여기를 참조하십시오

<WebView [src]="url" (loadFinished)="loadFinished($event)"></WebView>

중요 : <Page> 태그를 제거 (2 각도/Nativescript 내에서 사용할 수 없습니다).

상세 정보 : github issue

+0

감사합니다. 또한 wChring이 아닌 기본 구성 요소에 대한 사용자 정의 설정에 ViewChild 데코레이터를 사용하여 이유를 알 수 없습니다. –

관련 문제