checkLoadRequest(navigator) {
const url = navigator.url.toLowerCase();
// VERY naive implementation but might be all you wanted
if (url.indexOf('.pdf') > -1 || url.indexOf('.doc') > -1) {
// On iOS we just return false.
// Android requires us to call stopLoading().
this._webView.stopLoading();
return false;
}
return true;
}
4条答案
按热度按时间a11xaf1n1#
不幸的是,没有简单的设置。但至少有一个解决方法是相当简单的。
实现一个
onShouldStartLoadWithRequest
处理程序。如果从该处理程序返回false
,WebView将不会加载URL。然后,您可以决定是否需要一个简单的实现,只是查找“类似文件的URL”,或者做一些更聪明的事情。一个非常简单的实现:...
对于更复杂的实现选项,您可以使用正则表达式来检测您想要阻止的更多文件扩展名模式。
请注意,此处理程序不能是异步的,也不能跨平台正常工作。如果你想做一些更复杂的事情(例如),那就是黑客。在后台向URL发出HEAD请求,看它会发送什么),你可以阻止/拒绝所有请求,施展你的魔法,然后编程地告诉webview导航到URL,如果它是OK的。在大多数情况下,它会使导航非常缓慢,但非常准确。
m1m5dgzv2#
你可以通过注入一个javascript来实现这一点,在controlsList=“nodownload”属性检查的帮助下,下面是视频文件的参考代码:
9nvpjoqh3#
20jt8wwn4#