我正在尝试使用 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”,但是随后禁用了所有交互。有人知道该怎么做吗?
答案 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} }来停止页面加载。