V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yafoo
V2EX  ›  程序员

ios 浏览器、webview 简直就是手机端的 IE6,你有同感吗?

  •  1
     
  •   yafoo ·
    yafoo · 2020-03-19 21:48:41 +08:00 via Android · 6327 次点击
    这是一个创建于 1714 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近一年做前端开发,各种在电脑和安卓手机上显示正常的样式,到苹果手机就不行了,各种错位与不正常,苹果就是手机端的 IE6,垃圾的很,不知道那些天天吹苹果手机的人怎么想的?

    天天都在搞苹果兼容,input 不能自动聚焦、各种点击无反应、输入法键盘收回后页面内容悬着不会下来,页面元素点击错位、fixed 定位限制、iframe 限制,滚动卡顿、absolute 定位问题、层级问题,真是垃圾。这两天又被一个问题难住了,两天了,感觉完全无解。
    53 条回复    2020-03-23 21:38:07 +08:00
    wittyfans
        1
    wittyfans  
       2020-03-19 23:28:56 +08:00 via iPhone
    额,用户体验来说,我觉得 safari 还是蛮好用的,流畅无广告。
    luhe
        2
    luhe  
       2020-03-19 23:34:24 +08:00   ❤️ 6
    吹苹果手机的当然不会从开发者角度吹啊...退一步说,IE6 垃圾难道就不能吹 Windows 么
    crella
        3
    crella  
       2020-03-19 23:36:58 +08:00 via Android
    其实不是很懂 chrome 和 firefox 主要都更新了些什么。

    虽然我存了一个 chrome 60 版本,已经很多网站打开时排版错乱了或者弹窗提示要升级浏览器了。

    是不是一直在给 css 和 js 擦屁股?
    wangyzj
        4
    wangyzj  
       2020-03-19 23:58:04 +08:00
    ie6 不至于
    我 ios 主力就是 Safari,挺好的
    Torpedo
        5
    Torpedo  
       2020-03-19 23:59:00 +08:00
    ios 主要是 10.3 那个版本。还有 fixed 定位、uiwebview 的滚动这种比较坑。
    MaxZ
        6
    MaxZ  
       2020-03-20 00:02:59 +08:00 via iPhone
    @wangyzj 你 ios 哪个浏览器底层都是 Safari
    iConnect
        7
    iConnect  
       2020-03-20 00:06:25 +08:00 via Android
    Safari 中 input 聚焦自动放大屏幕是什么鬼,搞到边距不知道设置多少合适(囧😓)
    anguiao
        8
    anguiao  
       2020-03-20 00:10:46 +08:00 via Android
    主要是很多人一直不升级 iOS 版本,Safari 也就跟着升不了了。
    learningman
        9
    learningman  
       2020-03-20 00:18:47 +08:00 via Android
    @crella 新技术新特性。
    比如说 preload 列表一直要更新,http2/3 之类的
    newtype0092
        10
    newtype0092  
       2020-03-20 00:20:41 +08:00
    我用了 xcode 之后才知道大厂做的 IDE 也是会经常 crash 的。。。
    dremy
        11
    dremy  
       2020-03-20 00:50:20 +08:00 via iPhone   ❤️ 1
    出这么多兼容性问题,会不会是自己的实现不规范不标准导致的?毕竟是与 Chrome 同源的 webkit 引擎,差异不会特别大的
    SunriseFox
        12
    SunriseFox  
       2020-03-20 01:00:50 +08:00 via Android   ❤️ 3
    @dremy 差异很大,多个 2 年前 chrome/ff 就支持的新标准 Safari 还不支持,多个用户提了 3 年的 Safari 的 Bug 到现在还没修。
    hanqian
        13
    hanqian  
       2020-03-20 01:34:52 +08:00
    看来谁也阻挡不了 Google 霸占浏览器标准了
    yafoo
        14
    yafoo  
    OP
       2020-03-20 06:47:12 +08:00 via Android   ❤️ 2
    @dremy 我说个最简单的问题:input 聚焦,弹出输入法,输入完,输入法收回,页面元素应该跟着滑下来。但是 ios 上页面元素还在空中悬着,造成点击的触发位置跟实际元素不对应,造成无法点击。网上搜索后,解决方案是,input 失去焦点时,用 js 控制页面滚动 1 像素,因为滚动一下,页面就显示正常了。这个问题,最新的苹果手机都存在。这种最基本的点击触发坐标都能错位,感觉连 IE6 都不如。
    mcfog
        15
    mcfog  
       2020-03-20 07:54:06 +08:00 via Android
    @dremy 那是老黄历了,七年前 chrome 就自己搞了 blink 了
    littlebaozi
        16
    littlebaozi  
       2020-03-20 08:26:46 +08:00
    前端以为摆脱了 ie,结果来到移动端还有兼容性问题
    murmur
        17
    murmur  
       2020-03-20 08:34:00 +08:00   ❤️ 1
    safari mobile 简直是人 间 之 屑
    lookas2001
        18
    lookas2001  
       2020-03-20 08:55:36 +08:00
    还有一堆特性 safari mobile 不支持。
    要是 chrome 能统一全平台,让开发者少调点 bug,我👐赞同,可是你 apple 就是有自己的想法。
    loading
        19
    loading  
       2020-03-20 08:59:07 +08:00 via Android
    可能是 ie6,但你是不是没有经历过同时兼容 ie 6789 ?
    ganbuliao
        20
    ganbuliao  
       2020-03-20 09:06:11 +08:00
    没办法 每个厂都有点自己的想法
    marcong95
        21
    marcong95  
       2020-03-20 09:15:23 +08:00   ❤️ 1
    @anguiao #8 iOS 是升级率最高的系统了吧,隔壁 Android 还要厂家自己适配,再隔壁 Windows 还有忠实 XP 党。。
    dbskcnc
        22
    dbskcnc  
       2020-03-20 09:16:56 +08:00
    草果的水平也就那样了,吃独食的结果, 放开内核的限制的话我想它基本不会有市场,可惜欧盟为什么不告它垄断,windows 可是捆绑了一下 ie 就有问题,ios 直接不让你用其它的浏览器竟然没问题
    Track13
        23
    Track13  
       2020-03-20 09:18:05 +08:00 via Android
    webview 这个锅主要还是手机厂家背。全靠用户手动更新(以前部分手机还得改包名)。
    mokevip
        24
    mokevip  
       2020-03-20 09:25:01 +08:00
    楼主说的大部分碰到过,最坑的是还总有 ios9 的用户出现问题,当然也是兼容没做好。。。但我们公司的确没有 ios9 可以测试啊。。。。。。每次项目上线,总有一些 ios9 用户出各种问题,没有实体机的我只能听着描述盲猜问题出现在哪
    Building
        25
    Building  
       2020-03-20 09:26:49 +08:00
    Safari 只是 Bug 多,而 IE6 完全是不兼容。
    Nicoco
        26
    Nicoco  
       2020-03-20 09:30:10 +08:00
    @dbskcnc 支持
    whypool
        27
    whypool  
       2020-03-20 09:48:05 +08:00
    简直是辣鸡,希望 chrome 能全霸占,干掉辣鸡 safari
    ios 能有点 b 数,打不过就加入,没啥丢人的
    MengiNo
        28
    MengiNo  
       2020-03-20 09:48:54 +08:00
    电脑上的 Chrome 调对也不代表原生安卓的 Chrome 就没有问题呀... 虽然 Safari 的确要单独兼容
    vitozyf
        29
    vitozyf  
       2020-03-20 09:49:52 +08:00
    不是 Safari 的问题,Safari 本身很好用。
    vitozyf
        30
    vitozyf  
       2020-03-20 09:53:13 +08:00
    你说的 webview 是嵌套在 ios 软件中的网页打开形式,苹果本身不想在软件内嵌套网页,影响 app 体验,webview 组件故意这样搞的不好用的
    hoyixi
        31
    hoyixi  
       2020-03-20 09:54:33 +08:00
    倒逼啊,只要开发者一直兼容 IE6,那总有人坚守 IE6。

    你干脆不兼容 iOS WebView,不就得了。
    mars0prince
        32
    mars0prince  
       2020-03-20 10:22:35 +08:00
    主要很多人不升级 ios,安卓用户一般都老老实实跟着系统升级,苹果用户就。。。我身边很多人还在用 ios10,说是省电
    anguiao
        33
    anguiao  
       2020-03-20 10:51:20 +08:00 via Android
    但是 Android 的浏览器是可以单独升级的,iOS 就不行了。
    sm0king
        34
    sm0king  
       2020-03-20 11:07:36 +08:00   ❤️ 3
    哦 ,那你没遇到华为 之类的内置浏览器,Android 的 微信、qq 浏览器,加油兄弟,要解决的问题多呢,看你遇到的问题,都还好,还会有更多~ 而且现在应该不用兼容低配置的 Android 了,那个更痛苦。iOS 的其实算是好的,因为它就一个 iOS 版的 Safari,到 Android 平台,内置 webview 的各种版本、各大浏览器应用的各种版本 各不相同. . .
    murmur
        35
    murmur  
       2020-03-20 11:11:28 +08:00
    @vitozyf webview 玩起来比 safari 活,特定版本我可以定制一些行为来避免 safari 里面的一些 bug,比如决定当软键盘弹出的时候,是压缩窗口大小,还是把页面推上去
    tanranran
        36
    tanranran  
       2020-03-20 11:17:14 +08:00
    恶心的是每次 IOS 更新 wkwebiew 都有可能带来新的 BUG。
    yafoo
        37
    yafoo  
    OP
       2020-03-20 12:48:27 +08:00 via Android
    @sm0king 安卓端,不兼容,我们换 x5 内核了。苹果端也能换就好了
    hand515
        38
    hand515  
       2020-03-20 12:53:55 +08:00
    @hoyixi #31 这样的应用苹果能给你上架?
    sm0king
        39
    sm0king  
       2020-03-20 14:50:35 +08:00
    @yafoo 这~~ 这方法好,直接只做 X5 兼容就好了 好像 X5 问题也蛮多的,不过只做一个的兼容轻松很多。Safari 慢慢玩儿, 不要相信 Chrome 的模拟器
    cuzfinal
        40
    cuzfinal  
       2020-03-20 16:18:14 +08:00 via Android
    微信也是
    xianxiaobo
        41
    xianxiaobo  
       2020-03-20 16:23:22 +08:00
    华为和小米的内置浏览器也很垃圾,webview 这个东西做点简单的还行,复杂的还是用原生吧。
    slanternsw
        42
    slanternsw  
       2020-03-20 19:00:32 +08:00
    @lookas2001 Chrome 一统还是算了,现在就敢扫你硬盘不清自己家 cookie 以后什么干不出来。
    dingwen07
        43
    dingwen07  
       2020-03-20 19:37:55 +08:00
    @xianxiaobo 那多半是因为国内厂商没有 Play 商店,WebView 没有及时更新
    系统内置浏览器内核这点安卓比 iOS 好,至少更新不随系统,说起来这点 iOS 确实很像 ie
    dorentus
        44
    dorentus  
       2020-03-20 22:10:57 +08:00 via iPhone
    Chrome 才是新时代的 IE。

    IE 当年还是很先进的,后来才过时了。IE 支持一些很好用的但是别的浏览器不支持的功能。
    dorentus
        45
    dorentus  
       2020-03-20 22:14:05 +08:00 via iPhone
    如果所有浏览器都兼容 IE 6,开发起来也不会有问题。当年也有人是像你看待 Safari 这样看待 firebird/firefox 的。
    dorentus
        46
    dorentus  
       2020-03-20 22:18:30 +08:00 via iPhone
    搞前端开发的不关注页面性能我现在也都能理解了🤦🏻

    连做浏览器兼容性适配都觉得难了么?当年可是 IE 一家独大、提供了很多不在标准内的功能、而 IE 6 又很臭名昭著地不支持很多标准化的东西,所以才会这么痛苦。

    现在呢?只是 Chrome 稍微激进了一些,做了一些不在标准内的功能,然后其它浏览器内核暂时没有跟上而已吧
    shpasspass
        47
    shpasspass  
       2020-03-20 22:23:59 +08:00
    iphone6 的 safari 和微信里的浏览器不支持箭头函数。。。这很坑爹
    webshe11
        48
    webshe11  
       2020-03-20 22:33:56 +08:00
    当年搞了个开源的小工具,iPhone 上照着 MDN 搞了 2 天就是不行,最后不做了,睡大觉
    除非有人点 star
    zhw2590582
        49
    zhw2590582  
       2020-03-21 08:12:32 +08:00 via iPhone
    之前看到一个信息,说 ios 有个协议,所有在 ios 运行的浏览器,都要用 Safari 做底层,意思是 ios 上的 Chrome 其实也是 Safari 套了一个壳
    dier
        50
    dier  
       2020-03-21 09:12:31 +08:00 via iPhone
    @wittyfans 本来我也觉得 safari 挺好的,去年看新闻,safari 会把浏览信息传给鹅厂,最近 safari 访某些网站果然提示被鹅厂判断为不安全网站,果断换成 chrome 了
    wanguorui123
        51
    wanguorui123  
       2020-03-21 10:15:08 +08:00 via iPhone
    除了兼容性 Bug 多了点,其他还是比较好用
    nieyujiang
        52
    nieyujiang  
       2020-03-21 13:57:54 +08:00 via iPhone
    @zhw2590582 #49 没错,iOS 上面所有商店可以下载到的浏览器都是系统默认的 WebView 包了一个皮😂
    dorentus
        53
    dorentus  
       2020-03-23 21:38:07 +08:00 via iPhone
    @shpasspass babel 不香么?另外和手机型号没关系,只和系统版本有关系(因为浏览器内核是和系统绑定的,这点道确实挺像 IE 的;但和微软不同,苹果推用户升级新版本还是很卖力的)

    @dier 不是协议,是单方面的“规范”。实际操作上可以绕过苹果的检测,但是由于苹果的限制,不用 Webkit 就没有 JIT,性能损失很大,大家才没有选择自己内嵌一个引擎。

    JIT 的事情,我支持苹果的限制。因为只要苹果开放 dymanic_codesign 的权限,我们分分钟就能给你把整个 app 都做成空壳化……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4963 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:52 · PVG 17:52 · LAX 01:52 · JFK 04:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.