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

标签 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);
}
});
}

我尝试将标记 isUserInteractionEnabled="false"添加到我的 xml View 中,但随后所有交互都被禁用。有人知道怎么做吗?

最佳答案

尝试使用loadStartedEvent

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

这样我们就捕获了 loadStartedEvent 而不是 loadFinishedEvent (其中 url 已经加载),如果我们想根据它进行过滤,我们会检查 url,在这里我们可以使用webview.stopLoading()来停止页面加载。

关于webview - NativeScript WebView在默认浏览器中打开url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51355666/

相关文章:

javascript - NativeScript-vue 应用程序中的 Laravel 身份验证,有人做过吗?

javascript - Nativescript Angular : Can't read object from inside a function (this. 未定义?)

javascript - 从 Nativescript 的 WebView 访问 header /查询参数

android - tns-platform-declarations 的 nativescript-carousel 错误

react-native - 如何在React Native WebView中传递发布参数?

java - 在 JavaFX WebView 中获取 HTML 输入值?

c# - 脚本未在 webview (Xaml/C#) windows phone 8.1 中加载

css - 无法在多个 nativescript styleurls 中找到样式表

swift - 试图让 webView 加载 2 个 URLS

react-native - React Native WebView onMessage 和 postMessage 以获取所有网页