V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ethusdt
0.01D
V2EX  ›  程序员

X 怎么做到修改 iOS 截屏内容的?

  •  
  •   ethusdt ·
    FaiChou · 1 天前 · 4601 次点击

    X screenshot

    新版的 X 在截图前(如图所示)详情位置的右上角 follow 按钮,截图后,会变成 X.com (左边截图是用旧版本的截屏)。

    这很奇怪,是怎么做到的?有新的 API 吗?

    之前很多应用会在灵动岛上方隐藏一个 app 名称,截图时候会看到。但这种方式仅仅是隐藏在灵动岛下方,视觉上看不见,可以被截图。

    另外一种(已知)可以截图改变的方式是使用 SecureField,密码输入框截图时候会自动隐藏内容。

    所以很好奇他们是怎么实现的。

    第 1 条附言  ·  1 天前
    录屏也有。。

    并且找了个第三方的推特 app 试了下,那个位置是 🐦‍⬛.com 而不是 X.com

    有点意思,感觉是 DRM 呢
    43 条回复    2025-11-11 17:13:08 +08:00
    mrgeneral
        1
    mrgeneral  
       1 天前
    截屏有 API 可以感知,比较狠的是 12123 ,现在压根就不允许截屏了。
    iMiata
        2
    iMiata  
       1 天前
    最近申请了公司的移动端办公发现微软的 outlook 和 teams 都能拦截 iOS 的截屏,截出来是一张完全空白的白色纯色图片
    dzdh
        3
    dzdh  
       1 天前
    ai 说是 UIScreenshotService
    finab
        4
    finab  
       1 天前
    密码输入框有一层特殊的 View,这层 View 在运行时获取到,然后用这个覆盖住按钮就能在截屏时隐藏掉这个按钮。
    Leviathann
        5
    Leviathann  
       1 天前
    tg 也是 群组可以设置成截图时隐藏聊天内容
    usVexMownCzar
        7
    usVexMownCzar  
       1 天前 via iPhone
    大公司可以申请某些东西,小公司的技巧就是密码输入框作为整个页面的容器。
    SakuraYuki
        8
    SakuraYuki  
       1 天前   ❤️ 1
    你说的那些灵动岛位置的 logo 其实平时也不在那里,也是截图的时候出现的
    duanxianze
        9
    duanxianze  
       1 天前
    试了下安卓没有这个功能,遗憾啊
    timesh
        10
    timesh  
       1 天前
    @mrgeneral 可以阿,ios 哪些页面不能呢?
    duanxianze
        12
    duanxianze  
       1 天前
    @duanxianze #9 我是说安卓的 x 没有实现这个功能
    SmallBlueZhao
        13
    SmallBlueZhao  
       1 天前
    @timesh 12123 的个人电子证件那个不让截图了
    xkeyC
        14
    xkeyC  
       1 天前
    输入框设置 secureTextEntry + 子视图实现的,常被用来遮挡不让截图录屏的内容
    wangmn
        15
    wangmn  
       1 天前
    pdd 截图还生成二维码呢。
    nasaboy
        16
    nasaboy  
       1 天前
    iOS26 怎么复现不了
    maia5
        17
    maia5  
       1 天前 via iPhone
    你也看叔叔呀
    arthurblake
        18
    arthurblake  
       1 天前
    @SmallBlueZhao 确实。
    Domado
        19
    Domado  
       1 天前
    我也很好奇这个问题
    bqx619
        20
    bqx619  
       1 天前
    这个玩意在起点上可以说是用的淋漓尽致了
    @mrgeneral
    moult
        21
    moult  
       1 天前
    @SakuraYuki #8
    灵动岛的 LOGO 一直都在的,不是截图的时候加的。在 Mac 上使用 iPhone 镜像的时候就能看见了。
    Bananana
        22
    Bananana  
       1 天前
    没道理啊,iOS 的截图 API ,只能在用户发生截图后把事件通知给 APP 而已
    Bananana
        23
    Bananana  
       1 天前
    @mrgeneral iOS 没这种不允许截屏的 API 啊,只有在截屏后通知应用发生了截屏的回调
    dddedd
        24
    dddedd  
       1 天前
    有的 app 不能截屏,双持安卓,直接把 API 给禁了 🐶
    liyafe1997
        25
    liyafe1997  
       1 天前
    @Bananana 有没有可能是截屏前就通知了,发生截屏的一瞬间(在真正截屏之前) App 修改了 UI 。iOS 上不允许截屏也是用这个原因,让你截出来的一瞬间永远截到的是白的或者其它画面。
    ethusdt
        26
    ethusdt  
    OP
       16 小时 35 分钟前 via iPhone
    @liyafe1997 没可能
    Tomatopotato
        27
    Tomatopotato  
       15 小时 54 分钟前
    去 reddit 找个 ios 开发的版块问问更快
    canteon
        28
    canteon  
       15 小时 49 分钟前
    专业的人来回答吧
    linuxsir2020
        29
    linuxsir2020  
       15 小时 41 分钟前
    @iMiata MAM 或者 MDM, 有数据保护策略吧
    SakuraYuki
        31
    SakuraYuki  
       15 小时 2 分钟前
    @moult 为啥我用 iPhone 镜像的时候没有,你这是什么版本的
    freewarcraft
        32
    freewarcraft  
       13 小时 57 分钟前
    @mrgeneral 我还以为这是安卓版特有的限制,没想到 iOS 也可以
    Shatyuka
        33
    Shatyuka  
       13 小时 22 分钟前
    可以考虑用双层 UI ,下面是 logo ,用于截屏时显示;上面是设置了 secureTextEntry 的 UITextField ,把你自己要隐藏的 view 挂在下面,截屏时 UITextField 会被系统隐藏。
    https://developer.apple.com/documentation/uikit/uitextinputtraits/issecuretextentry
    ethusdt
        34
    ethusdt  
    OP
       12 小时 43 分钟前
    @Shatyuka 那上层呢?如果 X app 是这样做的,上层应该是个 follow button 可以和用户交互。看这个文档,应该不能把 UITextField 自定义成 button 的样式和用户交互吧。
    Bananana
        35
    Bananana  
       12 小时 4 分钟前
    @102errors 感觉这个是这里面的解
    runningowl
        36
    runningowl  
       11 小时 33 分钟前
    ethusdt
        37
    ethusdt  
    OP
       10 小时 27 分钟前
    @runningowl 这些 api 比如 userDidTakeScreenshotNotification 的通知,都是截图后才通知的,截图已经把内容截上了。它会通知 app 让 app 做出一些隐私的提醒而已。大部分银行都只能做到这一步。

    最好能找到一个除了 X app 之外的例子,还能实现这样禁止截屏或者修改屏幕内容的。这个链接内的 WhatsApp 我也试了下(很多页面),都可以正常截屏。
    br_wang
        38
    br_wang  
       9 小时 37 分钟前
    用 netflix 放视频截个屏或者录制屏幕试试。
    ethusdt
        39
    ethusdt  
    OP
       9 小时 17 分钟前
    @br_wang 这是已知的 DRM
    kasusa
        40
    kasusa  
       9 小时 11 分钟前
    我去截了两个图。都是留着关注按钮。
    没有你这种情况啊。
    kasusa
        41
    kasusa  
       9 小时 11 分钟前
    难道我用的是老版本的?
    ethusdt
        42
    ethusdt  
    OP
       8 小时 54 分钟前
    @kasusa #41 这要问你自己了,用的啥版本。我和我朋友都是可以复现的。
    Shatyuka
        43
    Shatyuka  
       7 小时 9 分钟前
    @ethusdt #34 “把你自己要隐藏的 view 挂在下面”
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1651 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:22 · PVG 00:22 · LAX 08:22 · JFK 11:22
    ♥ Do have faith in what you're doing.