我正在尝试使用 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/