macOS 桌面也用到了 Javascript + HTML + CSS 来实现 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Biwood
V2EX    程序员

macOS 桌面也用到了 Javascript + HTML + CSS 来实现

  •  1
     
  •   Biwood
    oodzchen 2022-05-13 09:54:41 +08:00 8336 次点击
    这是一个创建于 1248 天前的主题,其中的信息可能已经有所发展或是发生改变。

    macOS UI macOS UI2

    而且还是用 React.js 来写的,看来用 Web 技术写桌面 UI 是一大趋势了。

    原文: https://blog.jim-nielsen.com/2022/inspecting-web-views-in-macos/

    35 条回复    2022-05-21 19:28:21 +08:00
    murmur
        1
    murmur  
       2022-05-13 09:55:38 +08:00
    用 web 放广告或者公告灵活性比原生界面太多了
    xPKK1qofAr6RR09O
        2
    xPKK1qofAr6RR09O  
       2022-05-13 10:05:53 +08:00
    webview 不是什么新鲜玩意
    CivAx
        3
    CivAx  
       2022-05-13 10:07:47 +08:00
    这个老帖了,上个月有人发过一次。

    主要是这个选项页的东西确实用 webView 加载会更方便,比如推送促销信息、获取订阅信息、更新容量(配额)等。
    codehz
        4
    codehz  
       2022-05-13 10:23:06 +08:00 via Android
    想起隔壁 win10 更新界面是用 xaml 加载的(
    murmur
        5
    murmur  
       2022-05-13 10:27:58 +08:00   4
    应该这么理解
    ×webview 不是新鲜玩意
    √苹果作为世界前几名的科技企业为 webview 站台

    这针对的就是 flutter ,没错!
    Biwood
        6
    Biwood  
    OP
       2022-05-13 10:34:39 +08:00
    @codehz Linux 上的 KDE 和 GNOME 好像都很早就用 Javascript 来写了,所以真的是能用 JS 写的最终都会用 JS 写吗,似乎是靠近用户体验层面的东西都能比较适合 WEB 技术来做
    codehz
        7
    codehz  
       2022-05-13 10:53:27 +08:00 via Android
    @Biwood Xaml 不是 html ,虽然结构上都有 xml 的影子。。
    我是说这种需要定制显示效果的地方也不是非得 html 不可
    cpf
        8
    cpf  
       2022-05-13 11:55:24 +08:00   3
    大致的原话:能用 JS 写的最终都会用 JS 写,优点是 JS 什么都能写,缺点是,你真的用 JS 写了
    orancho
        9
    orancho  
       2022-05-13 12:32:25 +08:00   3
    建议搜索一下 Active Desktop
    ericgui
        10
    ericgui  
       2022-05-13 13:36:19 +08:00   1
    还是很惊奇的,不过也算是高兴吧,Javascript 作为一个语言能侵入这么多领域,好事啊
    TWorldIsNButThis
        11
    TWorldIsNButThis  
       2022-05-13 13:40:55 +08:00 via iPhone
    暴论:react 大举入侵桌面 gui ,意味着传统的依赖继承的 oop 全面溃败
    zhouyg
        12
    zhouyg  
       2022-05-13 14:29:43 +08:00
    有没有可能是最终肉眼所见的都会是 js 写的
    joesonw
        13
    joesonw  
       2022-05-13 14:47:24 +08:00 via iPhone
    lujiaosama
        14
    lujiaosama  
       2022-05-13 15:42:45 +08:00   1
    桌面跨端应用越来越多的 electron 应用了, 有些时候有些桌面应用一看 ui, 结合体积和性能, 一查果然是 electron. 好处是半吊子 js 工程师也能介入桌面开发领域, 坏的是应用质量下降了.
    cpstar
        15
    cpstar  
       2022-05-13 16:06:27 +08:00   1
    webOS 内牛满面
    Atsushi
        16
    Atsushi  
       2022-05-13 16:49:34 +08:00
    @orancho 同想到 Active Desktop 。
    不过这个界面应该是 iCloud 相关的原因才是 JS 的吧,别的页面不一定是 JS
    不过这个页面也是极其慢
    还是不喜欢 JS 的东西
    CommandZi
        17
    CommandZi  
       2022-05-13 19:07:13 +08:00
    @lujiaosama 楼主的就一个 webview 控件显示这一小块内容吧
    fayetitus
        18
    fayetitus  
       2022-05-13 19:48:57 +08:00   1
    Web 目前可能是最好的 UI 解决方案,性能除外。
    d5
        19
    d5  
       2022-05-13 20:02:53 +08:00
    Palm/HP: WebOS WebOS !
    SimonOne
        20
    SimonOne  
       2022-05-13 20:04:50 +08:00
    所以离线情况下这块会怎么样?
    ciaoly
        21
    ciaoly  
       2022-05-13 20:06:17 +08:00 via Android   2
    大量 Web 前端工程师操着 electron 进军桌面:

    应用质量下降了
    桌面应用更好看了
    ciaoly
        22
    ciaoly  
       2022-05-13 20:07:31 +08:00 via Android
    话说为啥 Web 技术栈写图形应用就简单啊?
    为什么其它图形应用技术栈不能做到像 Web 开发那样简单呢?
    marczhao
        23
    marczhao  
       2022-05-13 21:46:08 +08:00
    虽然但是,可以仔细看一下那个“setup.icloud.com”。
    只有 Apple ID 里面 姓名、密码、付款、iCloud 管理 这几个界面点出来了右键菜单,里面还都是真正的网页,例如 gsa.apple.com
    Alan1978
        24
    Alan1978  
       2022-05-13 21:53:12 +08:00 via Android
    Gnome 不早就全部 js 了吗
    dingwen07
        25
    dingwen07  
       2022-05-13 22:05:13 +08:00 via iPhone
    苹果的操作系统里一堆这种
    jones2000
        26
    jones2000  
       2022-05-13 22:27:59 +08:00
    @ciaoly 不就是几个 DOM 堆下,那有什么图形应用。其他语言的也一样啊,拖几个控件就完成事了。基本就是体力活,刚毕业的都可以做。图形应用不应该是 2D 或 3D 的绘图吗,这些前端也没几个人去学的,都是调用第 3 方库。
    hawei
        27
    hawei  
       2022-05-13 22:55:50 +08:00 via iPhone
    @ciaoly 我觉得是生态。Web 本身的积累就是面向用户界面的描述。而不同平台的原生对 UI 实现差异太大。而 Web 被大众接受,以及经过时间检验的开发模式。
    agagega
        28
    agagega  
       2022-05-13 23:16:32 +08:00
    @ciaoly
    理论上是可以的,但:

    - 原生平台的描述性技术,都是对上一代面向对象甚至面向过程 API 的封装(比如 SwiftUI 和 AppKit/UIKit 的关系)。这就导致你用这些技术稍深入一点,就难免要回过去学旧 API 是怎么回事

    - 而 Web 从头到位是个完整的抽象层,99.9%的时候你都不需要纠结 Web 引擎到底是怎么绘图的。即使用 Canvas ,也是因为真的要画一个图,而不是有什么界面 HTML+CSS 写不出来

    - 原生平台的技术不跨平台,跨平台的( Java 、Flutter 、Xamarin 、Qt )在单个平台又容易有坑

    - 网页套壳很容易实现「我做了一个客户端,同时又自动有了一个网页版」

    - Web 技术是开放的,所以任何严重影响开发者体验的事都可以很快被社区力量改进。第一方平台的反例参考 Xcode

    - (私货,玻璃心请轻喷)相当一部分中低层前端虽然看起来经常在学新技术,但实际上非常不愿意走出 JS 主导生态的舒适区,瞧不起传统后端语言(这两年 Go 起来之后,Node 吹少很多了,不知道有没有联系),瞧不起 Native UI. 而前端现在是门槛最低,(也许)需求最大,供应也最大的领域,so……

    ---

    BTW ,如果能用系统 WebView+一些更标准的原生接口(我也不知道还缺哪些),现在大家吐槽的 Electron 毛病都能少一些。更理想的是有一种能把 Web 和原生 UI 无缝融合的技术,允许渐进式地把关键组件切换到原生实现,不知道现在成熟了没
    7gugu
        29
    7gugu  
       2022-05-14 00:04:52 +08:00 via iPhone
    @agagega 其实渐进式的体验并不是特别好,还是会有很多坑,属于是性能不够原生来凑的地步,不得不用原生了,才会考虑原生组件。不然维护 webview 和原生组件两者就会是个恶梦。
    SakataToushirou
        30
    SakataToushirou  
       2022-05-14 04:05:07 +08:00 via Android
    设置的 iCloud 账户页面一直都是 html 点击动画和原生不一样。很生硬
    SakataToushirou
        31
    SakataToushirou  
       2022-05-14 04:05:48 +08:00 via Android
    iOS 的 iCloud 页面也是用的 webview
    lujiaosama
        32
    lujiaosama  
       2022-05-14 09:02:10 +08:00
    @CommandZi lz 这个肯定不是 electron, 只是联想到. 最近用的 electron 应用有点多了.
    Suzutan
        33
    Suzutan  
       2022-05-14 09:30:22 +08:00 via iPhone
    用什么写无所谓,性能好就行,win11 的资源管理器性能是真的已经到了恶心的地步
    tedding
        34
    tedding  
       2022-05-14 11:09:01 +08:00 via iPhone
    OS X 上面的 dashboard 界面见过吗,那上面的自带的 widget 小组件,以及以前允许个人开发的小组件,全都是 html+Javascript……整个 dashboard 就是一个浏览器窗口 挂了很多 笑组件
    istomyang
        35
    istomyang  
       2022-05-21 19:28:21 +08:00 via Android
    JS 作为一个垃圾,真他妈下头。不要跟我提 electron ,我头疼。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2719 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 07:46 PVG 15:46 LAX 00:46 JFK 03:46
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86