You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter应用网页跳转触发Google授权错误,如何合规?

Flutter应用网页跳转触发"Access Blocked: authorisation error"问题解决

问题描述

刚发布首个Flutter应用,内置网页跳转按钮,部分用户反馈触发「Access Blocked: authorisation error」错误(错误截图:Google授权错误截图)。本人使用DuckDuckGo默认浏览器测试无此问题,查阅Google安全浏览器政策未找到明确解决方案,当前跳转代码如下:

_launchURL() async {
  const url = 'https://www.thiswebsite.com';
  final uri = Uri.parse(url);
  if (await canLaunchUrl(uri)) {
    await launchUrl(uri);
  } else {
    throw 'Could not launch $url';
  }
}

请问如何让应用符合政策?是否需改为打开外部浏览器跳转?

解决方案

  • 强制使用外部浏览器跳转
    当前代码默认可能采用应用内WebView或系统浏览器内嵌模式,这种环境会触发Google的安全验证拦截(尤其目标网站包含OAuth、登录授权逻辑时)。修改代码指定外部浏览器打开,脱离内嵌环境即可规避限制:

    _launchURL() async {
      const url = 'https://www.thiswebsite.com';
      final uri = Uri.parse(url);
      if (await canLaunchUrl(uri)) {
        // 强制唤起外部浏览器
        await launchUrl(uri, mode: LaunchMode.externalApplication);
      } else {
        throw 'Could not launch $url';
      }
    }
    

    LaunchMode.externalApplication会直接调用用户设备上的默认外部浏览器,完全脱离应用内嵌环境,基本能解决授权拦截问题。

  • 检查目标网站安全配置
    如果目标网站是你自己的站点,需要确认:

    • 网站的OAuth/登录授权是否限制了内嵌WebView的访问(多数服务会阻止非标准浏览器环境的授权请求)
    • 是否在网站安全设置中添加了你的Flutter应用标识(如包名、签名哈希),允许应用内嵌访问
  • 多浏览器兼容性测试
    测试时不要只局限于DuckDuckGo,务必用Chrome(对WebView安全限制最严格)验证跳转场景,提前排查兼容性问题。

内容的提问来源于stack exchange,提问作者Nomad09

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:40:25