【发布时间】:2022-07-02 15:19:40
【问题描述】:
我的项目中有一个简单的WebView。用户可以谷歌搜索任何东西。我现在遇到的问题是,通过单击某些链接,我会自动重定向到特定的应用程序(如果我安装了它)。
例子:
我的 iPhone 上有阿迪达斯应用程序,然后点击“阿迪达斯”链接 -> 我被重定向到阿迪达斯应用程序。这应该不发生。相反,链接应该在我的WebView 中打开。
这是我的webView:
bool _isLoading = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Web View Example'),
),
body: SafeArea(
child: Column(
children: [
Expanded(
child: WebView(
initialUrl:
'https://www.sneakersnstuff.com/de/product/48276/adidas-4d-futurecraft?country_override=DE&utm_content=cpcadssnscf&gclid=CjwKCAjwoduRBhA4EiwACL5RP4YhIZ818uzJTmO8gKLX3Z6Vvff740OjFsxs2nL0yzf-uGyzW9ak6RoCxyEQAvD_BwE',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller = webViewController;
},
javascriptChannels: <JavascriptChannel>{
_extractDataJSChannel(context),
},
onPageStarted: (String url) {
setState(() {
_isLoading = true;
});
},
onPageFinished: (String url) {
setState(() {
_imagesWithSize = [];
_currentUrl = url;
_isLoading = false;
});
},
),
),
Row(
children: [
IconButton(
onPressed: () {
_controller.goBack();
},
icon: Icon(
Icons.arrow_back,
size: 50,
),
),
IconButton(
onPressed: () {
_controller.goForward();
},
icon: Icon(
Icons.arrow_forward,
size: 50,
),
),
],
),
SizedBox(
height: 20,
),
RoundedCornersTextButton(
title: 'Google',
isEnabled: !_isLoading,
onTap: () async {
await _controller.loadUrl('https://www.google.com');
},
),
],
),
),
);
}
有什么办法可以阻止其他应用打开吗?
【问题讨论】:
标签: flutter dart webview uiwebview