NativeScript WebView在默认浏览器中打开url

NativeScript WebView在默认浏览器中打开url,webview,nativescript,Webview,Nativescript,我正在尝试使用WebView构建应用程序,并在WebView中单击/点击URL-s上的事件。下面的解决方案打开外部浏览器和URL,但它也在webview中加载相同的URL内容。有没有办法防止在webview中加载新url 这是我的代码示例 function onWebViewLoaded(webargs) { const page = webargs.object.page; const vm = page.bindingContext; const webview = webargs.obje

我正在尝试使用WebView构建应用程序,并在WebView中单击/点击URL-s上的事件。下面的解决方案打开外部浏览器和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”,但随后所有交互都被禁用。有人知道怎么做吗?

试试
loadStartedEvent

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

通过这种方式,我们捕获
loadStartedEvent
而不是
loadFinishedEvent
(url已经加载的地方),如果我们想根据url进行过滤,我们会检查url,在这里我们可以
webview.stopLoading()
停止页面加载。

首先你应该问他想做什么,这看起来像是一个逻辑游戏问题,而不是Nativescript。。。1.他到底为什么需要?2.他到底需要什么?3.他为什么不在Webview中打开它?那么这个应用程序只针对app2app路由?(类似于桌面网页快捷方式)。如果他打算在商店中发布,我想AppStoreConnect可能会拒绝他的应用,也可能是PlayStore…@DrAchernar我看不出问题,他想在外部浏览器中打开url,但不是在webview中,我自己有一个发布的应用,这种行为没有问题。@HenryWoody我发现答案不言自明,我们捕获loadStartedEvent而不是loadFinishedEvent(此处已加载url),如果要根据url进行筛选,我们将检查url,在此处我们可以使用webview.stopLoading()停止页面加载过程。@Maka如果您认为可以满足您的需要,请接受我的回答。