默认浏览器中的NativeScript WebView打开URL

时间:2018-07-16 06:21:11

标签: webview nativescript

我正在尝试使用 WebView 构建应用,然后在WebView内的URL上单击/点击事件。以下解决方案会打开外部浏览器和URL,但也会在webview中加载相同的url内容。有没有办法防止在webview中加载新的URL?

这是我的代码示例。

function onWebViewLoaded(webargs) {
const page = webargs.object.page;
const vm = page.bindingContext;
const webview = webargs.object;


webview.on(webViewModule.WebView.loadFinishedEvent, (args) => {
   let message = "Loading in progress....";
   if (!args.error) {
    message = `WebView loading finished with url: ${args.url}`;
} else {
    message = `Error received ${args.url} : ${args.error}`;
}


   if (args.url.indexOf('http://') === 0) {
    // Stop the loading url first... but how..

    // Open URL in external default browser
    utilityModule.openUrl(args.url);
}
});
}

我尝试设置添加到我的xml视图中的标志isUserInteractionEnabled =“ false”,但是随后禁用了所有交互。有人知道该怎么做吗?

1 个答案:

答案 0 :(得分:1)

尝试使用loadStartedEvent

    webview.on(webViewModule.WebView.loadStartedEvent, (args) => {
        if(!args.url.includes("whatever.net")){
            webview.stopLoading();
            utilsModule.openUrl(args.url);
        }
    });

通过这种方式,我们捕获了loadStartedEvent而不是loadFinishedEvent(已经加载了URL),我们检查了是否要根据其进行过滤,因此在这里我们可以{{1} }来停止页面加载。