uni-app webview 内嵌H5 H5项目引入了https://accounts.google.com/gsi/client 加载不成功

uni-app webview 内嵌H5 H5项目引入了https://accounts.google.com/gsi/client 加载不成功

示例代码:

<script src="https://accounts.google.com/gsi/client"></script>  

操作步骤:

uniapp webview 内嵌H5,H5项目引入了https://accounts.google.com/gsi/client
加载不成功,不在uniapp webview 里面是成功的,什么原因?

H5项目

<script src="https://accounts.google.com/gsi/client"></script>  

在uniapp webview里面是加载不了的,纯H5浏览器打开无问题

预期结果:

uniapp webview 内嵌H5,H5项目引入了https://accounts.google.com/gsi/client
加载不成功,不在uniapp webview 里面是成功的,什么原因?

H5项目

<script src="https://accounts.google.com/gsi/client"></script>  

在uniapp webview里面是加载不了的,纯H5浏览器打开无问题

实际结果:

uniapp webview 内嵌H5,H5项目引入了https://accounts.google.com/gsi/client
加载不成功,不在uniapp webview 里面是成功的,什么原因?

H5项目

<script src="https://accounts.google.com/gsi/client"></script>  

在uniapp webview里面是加载不了的,纯H5浏览器打开无问题

bug描述:

uniapp webview 内嵌H5,H5项目引入了https://accounts.google.com/gsi/client
加载不成功,不在uniapp webview 里面是成功的,什么原因?

H5项目

<script src="https://accounts.google.com/gsi/client"></script>  

在uniapp webview里面是加载不了的,纯H5浏览器打开无问题



| 开发环境              | 版本号   | 项目创建方式 |
|----------------------|---------|--------------|
| Windows              | 0.0.0   | HBuilderX    |
| Android              | Android 15 |            |
| 手机厂商             | 所有    |              |
| 手机机型             | 1.0.0   |              |
| 页面类型             | vue     |              |
| vue版本              | vue3    |              |
| 打包方式             | 云端    |              |

更多关于uni-app webview 内嵌H5 H5项目引入了https://accounts.google.com/gsi/client 加载不成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

直接保存下来,存在h5项目里面不就好了

更多关于uni-app webview 内嵌H5 H5项目引入了https://accounts.google.com/gsi/client 加载不成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是google 不让webview调,安全问题

回复 距离您98米: okok

在uni-app的Webview中无法加载Google Identity Services(GIS)库,通常是由于以下原因:

  1. Webview安全限制:uni-app的Webview组件在Android平台上默认启用了安全策略,可能阻止了跨域脚本加载。Google GIS库需要特定的CORS策略支持。

  2. User-Agent检测:Google GIS库会检测浏览器环境,而Webview的User-Agent与标准浏览器不同,可能导致Google服务器拒绝提供服务。

  3. 第三方Cookie限制:Webview默认可能阻止第三方Cookie,而Google登录服务依赖Cookie进行身份验证。

解决方案

  1. 配置Webview属性: 在创建Webview时添加以下配置:
// 允许跨域访问
plus.webview.create('your-url', '', {
    additionalHttpHeaders: { 
        'Access-Control-Allow-Origin': '*'
    }
});

// 启用第三方Cookie
plus.webview.currentWebview().setAttribute('websettings', {
    'allowThirdPartyCookies': true
});
  1. 修改User-Agent
// 设置与标准浏览器一致的User-Agent
plus.webview.currentWebview().setStyle({
    userAgent: 'Mozilla/5.0 (Linux; Android) AppleWebKit/537.36'
});
  1. 使用代理方案: 如果上述方法无效,建议通过自己的服务器代理Google GIS请求,将脚本部署在同域名下。

  2. 检查网络配置: 确保Android应用的网络权限配置正确,在manifest.json中添加:

{
    "permissions": [
        "<uses-permission android:name=\"android.permission.INTERNET\"/>"
    ]
}
回到顶部