uni-app 安卓手机自带浏览器及微信等打开提示“连接服务器超时,点击屏幕重试”,iOS手机、PC及安卓APP真机调试正常

发布于 1周前 作者 songsunli 来自 Uni-App

uni-app 安卓手机自带浏览器及微信等打开提示“连接服务器超时,点击屏幕重试”,iOS手机、PC及安卓APP真机调试正常
萌新一枚~无奈求助~

项目升级V3重构,真机调试等均正常(包含使用如下出现问题的安卓手机,使用内网打开H5测试地址,均正常),但发布H5版本后(部署到服务器上),安卓手机打开提示“连接服务器超时,点击屏幕重试”~ iOS手机、PC打开H5均正常,iOS app真机调试也正常,安卓APP真机调试也正常~ 尝试使用(前端网页托管基于uniCloud)部署方式,仍旧此提示

已经尝试:不同手机+不同网络(含WiFi及蜂窝数据)、清除浏览器缓存、跨时间段尝试、原来自建服务器改为前端网页托管基于uniCloud,均重新此问题~

已解决


6 回复

请问你是怎么解决的!可以告诉我怎么弄的吗1


怎么解决的啊!现在demo都跑不起来。操!什么鬼玩意

怎么解决的?

有可能是scss的问题,改用less可能就行了,如果不行,可以看看组件库用的是不是scss,如果是改成less也许就行了。

怎么解决的?

针对你提到的uni-app在安卓手机自带浏览器及微信中打开时提示“连接服务器超时,点击屏幕重试”,而在iOS手机、PC及安卓APP真机调试正常的问题,这通常可能是由于跨域请求、HTTPS证书、或者是特定环境下的兼容性问题导致的。以下是一些可能的解决方案和代码案例,帮助你排查和解决问题:

1. 检查跨域请求配置

确保你的服务器支持CORS(跨源资源共享),并且uni-app的请求配置正确。以下是一个uni-app中发起网络请求的示例代码:

uni.request({
    url: 'https://yourserver.com/api/data',
    method: 'GET',
    header: {
        'Content-Type': 'application/json'
    },
    success: (res) => {
        console.log('请求成功', res.data);
    },
    fail: (err) => {
        console.error('请求失败', err);
        uni.showToast({
            title: '连接服务器超时,点击屏幕重试',
            icon: 'none'
        });
    }
});

2. 强制使用HTTPS

如果你的服务器支持HTTPS,确保uni-app中的所有请求都使用HTTPS协议。这有助于避免一些因HTTP请求被拦截或限制而导致的问题。

3. 检查服务器SSL证书

如果问题仅出现在安卓手机的某些浏览器或微信中,可能是因为SSL证书不被这些环境信任。检查你的SSL证书是否有效,是否被主流浏览器和操作系统信任。

4. 特定环境兼容性处理

针对安卓手机的特定浏览器或微信环境,可以尝试添加一些兼容性处理代码。例如,检测用户代理并做特殊处理:

const userAgent = navigator.userAgent.toLowerCase();
if (userAgent.includes('android') && (userAgent.includes('micromessenger') || userAgent.includes('mobile'))) {
    // 针对安卓手机和微信的特定处理
    uni.showToast({
        title: '请注意,本应用在安卓浏览器和微信中可能存在兼容性问题',
        icon: 'none'
    });
    // 可以尝试一些额外的错误处理或回退逻辑
}

5. 调试和日志

增加详细的日志记录,帮助定位问题发生的具体位置。你可以在请求的fail回调中添加更详细的错误信息输出:

fail: (err) => {
    console.error('请求失败', err.errMsg, err.statusCode, err.data);
    // ...
}

通过上述步骤,你应该能够逐步定位并解决在安卓手机自带浏览器及微信中打开uni-app时出现的“连接服务器超时”问题。如果问题依旧存在,可能需要进一步分析网络请求的具体细节或与服务器端开发者协作排查。

回到顶部