uni-app ios18系统safari无法打开官网首页示例的web二维码 展示白屏

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

uni-app ios18系统safari无法打开官网首页示例的web二维码 展示白屏

操作步骤:

  • ios手机升级系统的ios18,然后扫官网首页示例的web版二维码

预期结果:

  • 正常展示页面

实际结果:

  • 页面白屏

bug描述:

  • ios18系统的safari无法打开官网首页的web二维码,展示白屏,其他ios版本的手机可以.
  • 我们自己的项目(uniapp cli 构建)也是ios18打开白屏, 怀疑uni-app的底层有问题
  • 辛苦相关同学排查下~
信息类别 详细信息
产品分类 uniapp/H5
PC开发环境 Windows
PC开发环境版本 ios
HBuilderX类型 正式
HBuilderX版本 4.26
浏览器平台 手机系统浏览器
浏览器版本 ios18系统
项目创建方式 HBuilderX

图片


6 回复

你们也可以开发一下看看是不是有啥兼容问题,然后报错了


ios18需要兼容的吧

问题定位到了, 是uni源码里问题, 但是官方不处理, 那我就不说那里有问题

如果是框架问题,请详细说明,方便及时处理修复

测试ios18系统的safari可以打开官网首页,你刷新试试呢

针对您提到的uni-app在iOS 18系统的Safari浏览器中无法打开官网首页示例的web二维码、展示白屏的问题,这可能是由于多种原因导致的,包括但不限于浏览器兼容性、页面资源加载失败、JavaScript错误等。由于无法直接访问您的具体代码和环境,以下提供一些可能的解决思路和代码示例,供您参考和调试。

1. 检查Meta标签

确保您的HTML头部包含了正确的viewport和兼容性meta标签:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, viewport-fit=cover">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>uni-app Example</title>
</head>
<body>
    <!-- Your content here -->
</body>
</html>

2. 检查JavaScript错误

在Safari的开发者工具(可通过连接Mac到iPhone并在Safari的“开发”菜单中启用)中检查控制台是否有JavaScript错误。确保所有JavaScript文件正确加载且无语法错误。

3. 资源加载检查

确保所有资源(CSS、JavaScript、图片等)都正确加载。可以使用网络面板查看请求是否成功:

// Example of loading a script dynamically and checking for errors
const script = document.createElement('script');
script.src = 'path/to/your/script.js';
script.onload = function() {
    console.log('Script loaded successfully');
};
script.onerror = function() {
    console.error('Failed to load script');
};
document.head.appendChild(script);

4. 条件注释或特性检测

针对iOS 18的特定问题,您可以尝试使用特性检测或条件注释来加载不同的代码路径(尽管这通常用于旧版IE浏览器,但思路类似):

if (navigator.userAgent.includes('iPhone OS 18_')) {
    // Load alternative resources or execute specific code for iOS 18
    console.log('Running on iOS 18');
    // Example: load a polyfill or different script
    const ios18Script = document.createElement('script');
    ios18Script.src = 'path/to/ios18-specific-script.js';
    document.head.appendChild(ios18Script);
}

5. 确保HTTPS

确保所有资源都通过HTTPS加载,以避免混合内容问题,这在现代浏览器中越来越严格。

总结

以上代码和思路仅作为起点,实际问题的解决可能需要您根据具体的错误信息和日志进行深入分析。如果问题依旧存在,建议详细检查服务器日志、网络请求和浏览器控制台输出,以获取更具体的错误信息。

回到顶部