2

我正在尝试在我的页面上插入一个web 视图并收听“loadFinishedEvent”...但是为此,我需要通过 nativescript 方式在我的组件(ts 文件)中找到 webview 我需要包装我的 xml (用户界面)带有标签:

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

但是这样做我得到了这个错误:“ TypeError:this.page.frame._getNavBarVisible is not a function ”,并且没有Page标签我已经尝试过一些方法但没有成功......

我也没有找到任何样本,有人可以帮助我吗?

4

4 回答 4

2

您的 .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 裸 webview 似乎不起作用

于 2016-12-06T14:23:37.000 回答
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");
        });
    }
}

注意:似乎 WebView 需要在 GridView 中调整宽度/高度属性的大小,请参阅上面的文档参考。它不会根据内容动态增长。

于 2016-11-05T17:35:23.857 回答
1

我用以下代码解决了它:

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

重要提示:删除<Page>标签(不应在 Nativescript/Angular 2 中使用)。

更多信息:github问题

于 2016-12-15T16:41:02.663 回答
0

您是否尝试通过 getViewById 方法在加载时使用 eventargs 来查找控件。您可以在此处找到更多信息 - https://docs.nativescript.org/ui/ui-with-xml

于 2016-06-09T21:11:56.683 回答