繁体   English   中英

Webview 无法通过单击链接打开已安装的应用程序

[英]Webview disabled to open installed Apps by clicking on link

我的项目中有一个简单的WebView 用户可以谷歌搜索任何东西。 我现在遇到的问题是,通过单击某些链接,我会自动重定向到特定的应用程序(如果我安装了它)。

例子:

我的 iPhone 上有阿迪达斯应用程序,然后点击“阿迪达斯”-Link -> 我被重定向到阿迪达斯应用程序。 应该发生。 相反,应该在我的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');
              },
            ),
          ],
        ),
      ),
    );
  }

有什么办法可以阻止其他应用程序打开吗?

我不认为这是 webview 的问题。

实际上有一些网站,当你打开它们时,他们会检查你是否使用手机,如果是这样,他们还会检查你是否已经在设备上安装了该应用程序。 如果也是如此,则默认情况下会打开移动应用程序。

您能否使用谷歌搜索(在 webview 内)访问其他网站,看看是否存在相同的行为?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM