未定义的WebView元素错误不是对象(评估“ this.oLangWebViewInterface.callJSFunction”

时间:2019-08-21 12:15:09

标签: nativescript nativescript-angular

由于将系统中的本机脚本版本升级为本机脚本6.0.1 ,因此我无法使用网络视图。

我得到以下错误:

  

未定义不是对象(评估'this.oLangWebViewInterface.callJSFunction

import :
import { WebView, LoadEventData } from 'tns-core-modules/ui/web-view/';
create :
let webViewInterfaceModule = require('nativescript-webview-interface');

child:
 @ViewChild('installationWebView', {static: false}) webView: ElementRef;

object:
    private oLangWebViewInterface;


   ngAfterViewInit() {
        this.setupWebViewInterface();
    }

function
 private setupWebViewInterface() {
        let webView: WebView = this.webView.nativeElement;

        this.oLangWebViewInterface = new webViewInterfaceModule.WebViewInterface(webView, '~/www/index.html');

        if (webView.android) { // in IOS android will be undefined
            webView.android.getSettings().setBuiltInZoomControls(false);
        }

        // loading devices in dropdown, on load of webView.
        webView.on(WebView.loadFinishedEvent, (args: LoadEventData) => {
            let message: string;
            if (!args.error) {
                message = `WebView finished loading of ${args.url}`;

            } else {
                message = `Error loading ${args.url} : ${args.error}`;
            }
            console.log(`WebView message - ${message}`);
        });

        this.listenLangWebViewEvents();
    }

连接到设备功能:

private connectToDevice() {
        //this.isConnecting = true;
        this.oLangWebViewInterface.callJSFunction('connectToDevice', null, (response: any) => {
            console.log(JSON.stringify(response));

        });
    }

1 个答案:

答案 0 :(得分:0)

我尝试将代码更改为此

public onWebViewLoaded(webargs:any){

const webview:WebView = webargs.object;

console.log(“ onWebViewLoaded()” + webview);

this.oLangWebViewInterface = new WebViewInterface(webview,'〜/ www / index.html'); //如果(webView.android){

//在IOS android中将是未定义的

// webView.android.getSettings()。setBuiltInZoomControls(false);

//}

webview.on(WebView.loadFinishedEvent,(args:LoadEventData)=> { let message =“”;

if(!args.error){

message = WebView已完成$ {args.url}的加载; }其他{

message =加载$ {args.url}时出错:$ {args.error}; }

console.log(WebView消息-$ {message});

});

this.listenLangWebViewEvents(); }

从“ nativescript-webview-interface”导入{WebViewInterface};

从'tns-core-modules / ui / web-view'导入{WebView,LoadEventData};

知道我只有一个问题

WebView消息-加载〜'/ www / index.html'时出错:在此服务器上找不到请求的URL。