shouldOverrideUrlLoading: (controller, navigationAction) async {
// You can access the URL like this
final url = navigationAction.request.url.toString();
if (condition) {
// This one means do not navigate
return NavigationActionPolicy.CANCEL;
}
// This one means navigate
return NavigationActionPolicy.ALLOW;
},
6条答案
按热度按时间7gyucuyw1#
就像这样:
vsaztqbk2#
由于您使用的是
InAppWebView
包,因此您可以在Webview实际导航之前截取它要导航到的每个URL,然后使用回调shouldOverrideUrlLoading
决定是否进行导航,如下所示:注意:要使用回调
shouldOverrideUrlLoading
,您必须在webview的initialOptions
中启用它,如下所示,因为默认值为false
:zi8p0yeb3#
要禁用将用户导航到另一个页面,您可以使用onPageCommitVisible回调来确定用户正在单击重定向到另一个页面的url,因此只需在其中调用goBack
rhfm7lfc4#
您可以通过导航委托属性阻止在webview中导航,如下所示:
jbose2ul5#
禁用导航
InAppWebView
:-我们在
Inappwebview
小部件中有onUpdateVisitedHistory
属性。使用此onUpdateVisitedHistory
属性,我们可以监听Inappwebview
小部件中的url更改。因此,禁用导航,我们可以使用webcontroller.goback()
方法。小组件代码:
在这里,我们跳过加载搜索引擎和跳转到其他小部件
注意:如果我们没有添加
webcontroller.goback()
。它将加载网站并移动到小部件。如果我们按下它将显示网页。样本代码:
禁用
Webview
小部件中的导航:我们可以使用
navigationDelegate
来监视webview
中的url更改。NavigationDecision.prevent
将阻止跳转到网站ne5o7dgx6#
对于Android阻止URL工作,你可以使用
webViewController?.goBack();
(但不工作在iOS设备上)您可以使用
webViewController?.stopLoading();
(在iOS和Android设备上都可以使用)防止该URL工作如果上面的解决方案使空白屏幕在android的使用简单ifelse