因为国内部分开发人员的小心思,所以我更偏向较为封闭的 iPhone 手机。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xingshu1990
V2EX    iOS

因为国内部分开发人员的小心思,所以我更偏向较为封闭的 iPhone 手机。

  •  
  •   xingshu1990 2021-04-16 09:04:01 +08:00 9466 次点击
    这是一个创建于 1643 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为 这些读取剪切板的国产 app 是真的烦: https://fast.v2ex.com/t/770796 这个帖子,我特地去搜索 IOS 自动化 清空剪切板,于是发现下面的内容

    https://www.jianshu.com/p/10a6900cc904?from=timeline

    以下是以上网址中的文字,涉及到的代码 不做验证,只想说有人动歪脑筋。

    之前用淘宝给微信好友分享链接的时候,发现在微信中复制了宝贝的链接,然后再从后台切换到淘宝客户端,淘宝就会弹出一个页面,询问是否要跳转到相关页面,今天试着实现了一下,分享出来~

    //识别剪贴板中的内容 if let paste = UIPasteboard.generalPasteboard().string where (paste.hasPrefix("http://") || paste.hasPrefix("https://")) { //如果剪贴板中的内容是链接 let alert = UIAlertController(title: "要打开剪贴板中的链接吗?", message: nil, preferredStyle: UIAlertControllerStyle.Alert) alert.addAction(UIAlertAction(title: "打开", style: UIAlertActionStyle.Default, handler: { Void in // your implementation print(paste) })) alert.addAction(UIAlertAction(title: "忽略", style: UIAlertActionStyle.Cancel, handler: nil)) //弹出 Alert let storyboard = UIStoryboard(name: "Main", bundle: nil) if let vc = storyboard.instantiateViewControllerWithIdentifier("navi") as? UINavigationController { self.window?.rootViewCOntroller= vc vc.presentViewController(alert, animated: true, completion: nil) } } 

    获取设备的剪贴板很简单,第一行代码就搞定了,if 语句中判断了一下剪贴板中的内容是不是链接,注意 http 和 https 都要写上,这点很容易被忽略(在浏览器地址栏中复制以 www.开头的文本会自动在剪贴板中转为 http 或 https 开头的链接)。

    更值得注意的是,因为你需要让 App 在每次从后台进入前台的时候都检测一下剪贴板中有没有链接,所以以上方法要放在 AppDelegate 文件的 applicationWillEnterForeground 方法中。

    AppDelegate.swift 而这个方法中是不能通过 self 来调用 ViewController 的,所以要曲线救国的话,你需要手动获取 Storyboard 、ViewController,再设置 window 的 rootViewController 才能去掉所有报错和警告。

    (这里我只是把剪贴板中的链接输出到控制台了,想要自己用 UIWebView 打开链接的话,在 // your implementation 这句注释这里写自己的方法吧)

    [ 150928 更新]

    对比 applicationWillEnterForeground 和 applicationDidBecomeActive 这两个方法,前者是指 App 从后台进入前台,后者是指 App 处于活跃状态,所以前者相对于后者,缺少的部分是,当 App 刚刚启动,而不是从后台取出的时候,它无法识别剪贴板。 因为你不能要求每次都让用户先把 App 打开,再往剪贴板里面填东西,再跳转回来,所以个人建议把上面的代码放在 applicationDidBecomeActive 方法中,而不是 applicationWillEnterForeground 。

    关于更大的监控,不用在这里讨论,大家放心里就好。

    61 条回复    2021-04-18 10:33:56 +08:00
    terrytang1
        1
    terrytang1  
       2021-04-16 09:05:36 +08:00   10
    不能说开发人员的小心思,都是公司,产品的结果导物,ios 是比较强制
    EasonC
        2
    EasonC  
       2021-04-16 09:07:06 +08:00 via iPhone
    划重点,国内开发人员小心思,安卓党是时候换一波手机了
    drunkdog
        3
    drunkdog  
       2021-04-16 09:07:26 +08:00   25
    应该说是老板及其狗腿的小心思
    xingshu1990
        4
    xingshu1990  
    OP
       2021-04-16 09:11:46 +08:00
    1 2 3 楼的朋友 其实说的是对的,国内公司领导的问题,不是开发人员的问题。在此修改。
    wellsc
        5
    wellsc  
       2021-04-16 09:12:04 +08:00   4
    难道不是产品的心思吗?作为开发表示能够少写一行业务代码就尽量少写
    2kCS5c0b0ITXE5k2
        6
    2kCS5c0b0ITXE5k2  
       2021-04-16 09:16:45 +08:00   1
    开发巴不得不写这些奇奇怪怪的功能
    ericwoflskin
        7
    ericwoflskin  
       2021-04-16 09:16:58 +08:00   12
    都是一伙人,自己在做啥又不是不知道,又没人拿枪顶着脑门,还不是为了钱。
    jiayong2793
        8
    jiayong2793  
       2021-04-16 09:18:55 +08:00
    有没有人验证一下,当我从 mac 上复制一个文件的时候,这种方法是读取文件路径还是文件流?

    也就是说,手机上的 app 能否通过这种方式访问 mac 上的文件
    jiayong2793
        9
    jiayong2793  
       2021-04-16 09:19:56 +08:00
    @xingshu1990 本质上来说是国内互联网企业盈利模式单一,都是靠广告盈利
    trlove
        10
    trlove  
       2021-04-16 09:24:59 +08:00
    @jiayong2793 mac 复制文件 在微信聊天窗口复制的时候 粘贴出来的是文件名 其他地方粘贴没试过 应该能读取文件
    antiquezzz
        11
    antiquezzz  
       2021-04-16 09:34:58 +08:00
    说个确切的,ios 玩球球大作战,每次一进去就提示读取了粘贴板(类似),所以这跟 ios 和 android 没什么关系吧,可能 android 提示都不给提示?
    Muniesa
        12
    Muniesa  
       2021-04-16 09:35:12 +08:00
    但就剪贴板这个问题,国产 android 的保护不是做的更好吗
    xumng123
        13
    xumng123  
       2021-04-16 09:35:43 +08:00 via iPhone
    开发人员没有小心思,那是老板的大战略
    joesonw
        14
    joesonw  
       2021-04-16 09:43:57 +08:00   6
    都是希特勒是灭犹太人, 为什么要审判我们?
    clrss
        15
    clrss  
       2021-04-16 09:56:17 +08:00
    与其捷径自动清空剪贴板, 我建议把剪贴板改成: 马**是**
    doveyoung
        16
    doveyoung  
       2021-04-16 10:15:22 +08:00
    我目前是用捷径清空剪贴板,敲三下手机背部执行

    @clrss #15 思路也不错,只不过 有没有比“马**是** ”更好的办法恶心一下恶意读剪贴板的
    jwing
        17
    jwing  
       2021-04-16 10:20:34 +08:00
    @jiayong2793 唯 KPI 最大导致的,这种扒光用户隐私,构建用户画像的发展策略,只要国家不立法禁止,就永远不会消失
    dynastysea
        18
    dynastysea  
       2021-04-16 10:55:19 +08:00   1
    我个人就没那么强的隐私概念,我觉得读取剪贴板这种功能真的超级方便。。。你们可以来鄙视我了。。
    watcher
        19
    watcher  
       2021-04-16 11:14:07 +08:00
    国外也有不少吧?
    drrrtt
        20
    drrrt  
       2021-04-16 11:19:06 +08:00
    @doveyoung #16 sql 注入啦"drop table dbo.*"
    also24
        21
    also24  
       2021-04-16 11:23:10 +08:00   3
    唉…… 都怪 Android 太开放,后台应用不能读写剪贴板,想做个剪贴板自动清理都不行,真是垃圾系统啊

    https://developer.android.com/about/versions/10/privacy/changes?hl=zh-cn#clipboard-data
    Jirajine
        22
    Jirajine  
       2021-04-16 11:30:39 +08:00 via Android
    Android 可以为每个应用单独调整剪贴板的访问权限。
    felixcode
        23
    felixcode  
       2021-04-16 11:33:45 +08:00
    我不懂移动端的开发,但这里引用的是 15 年的内容,六年了没啥变化吗?
    Cu635
        24
    Cu635  
       2021-04-16 11:39:51 +08:00
    不要侮辱开发人员,这明明是产品经理 /公司 /资本的心思。
    winddweb
        25
    winddweb  
       2021-04-16 11:40:19 +08:00
    安卓下个版本就会有读取剪贴板提示了
    yigecaiji
        26
    yigecaiji  
       2021-04-16 11:47:04 +08:00
    他要是只是在本地分析还好,就怕每次打开 app 都把你剪贴板的内容上传到服务器去分析。
    en20
        27
    en20  
       2021-04-16 12:01:58 +08:00 via Android
    为什么开发要出来挨打冤啊
    jiayong2793
        28
    jiayong2793  
       2021-04-16 12:12:07 +08:00
    @Cu635 产品经理也是被 KPI 逼的
    victor
        29
    victor  
       2021-04-16 12:14:30 +08:00
    @jiayong2793 本质上来说是国内互联网企业盈利模式单一,都是靠广告盈利

    能否给一些国外互联网企业的盈利模式,不靠广告那种
    processzzp
        30
    processzzp  
       2021-04-16 12:17:39 +08:00 via iPhone
    @dynastysea 好的,已 Block
    xingshu1990
        31
    xingshu1990  
    OP
       2021-04-16 12:37:02 +08:00
    @dynastysea #18 比如微信重置密码,要读取手机短信,那你只读取收取验证码的信息就好,不读取其他的信息的标题或者内容,这完全无可厚非,而现在,不能明确的说这些 APP 有直接读取隐私的情况,因为这中间还涉及到抓包的情况,技术上锤这些 APP 还是有点难度。
    简单都说,不是我们有强烈的隐私概念,而是有点精神洁癖。
    johnkiller
        32
    johnkiller  
       2021-04-16 12:52:25 +08:00
    对我的困扰就是 iOS14 读剪贴板会一直弹窗提示,还不能关。每次打开 QQ 它居然连读三四次,然后屏幕上就开始疯狂弹窗……
    mschultz
        33
    mschultz  
       2021-04-16 12:57:19 +08:00   1
    @xingshu1990 #31
    进一步,实际上微信连任何短信,包括验证码短信也不应该读取。iOS 的做法是让系统自带输入法读取短信,然后做一个一键快捷填写。

    ----

    我觉得读取剪贴板这件事可能大部分场景( 80%+?)都是不必要的、不最优的、捏着鼻子妥协的存在。

    举个例子:在微信里打开朋友发来的淘宝链接,正常人的思维是什么?点一下,打开,不香吗。结果厂商为了限制对家流量,互相屏蔽,然后再搞出火星文复制粘贴识别的一套流程。这不是脱裤子放屁嘛。

    本来互联网产品大家互相超链接「互联」好好的,我们应是眼睁睁地看着这个行业往互相屏蔽、流量圈地,然后搞个妥协流程来恶心用户的方向发展。市场如此,个人用户似乎也无能为力。
    xingshu1990
        34
    xingshu1990  
    OP
       2021-04-16 13:06:47 +08:00   1
    @mschultz #33因为有些互联网公司,在 URL 加入某些字段,在统计日志的时候,用来统计不同数据来源的地方,获得的流量,或者测试流量玩法,测试活动吸粉人数。
    有精神洁癖的用户呢,就想办法给互联网公司喂脏数据:就算我主动给 APP 喂屎,APP 主动推送屎,我也不觉得难受。
    xingshu1990
        35
    xingshu1990  
    OP
       2021-04-16 13:09:27 +08:00
    @xingshu1990 #34 像我这类人呢,就是不喜欢 APP 主动推送信息,包括但不限于历史购物产品降价,或者我买了篮球鞋,APP 就推送我鞋子护理物品,或者鞋带,鞋垫。
    我会自己去买,但不要你推送给我。
    qing108
        36
    qing108  
       2021-04-16 13:49:56 +08:00
    关于这个你应该喷腾讯才对,如果不是腾讯垄断,搞恶意竞争,不让竞争对手在微信和 qq 上分享,根本不会有这么多事情
    dingwen07
        37
    dingwen07  
       2021-04-16 13:54:05 +08:00 via Android
    MIUI 能自动识别各种剪贴板里的码,对不属于 app 的内容询问是否允许,不比你这个强多了
    340746
        38
    340746  
       2021-04-16 13:56:26 +08:00 via Android
    该死的百度网页还会修改剪贴板,真希望能有办法禁止。
    toptyloo
        39
    toptyloo  
       2021-04-16 14:04:52 +08:00
    单就剪贴板而言,Android 是可以控制剪贴板权限的。。。
    honeycomb
        40
    honeycomb  
       2021-04-16 14:10:08 +08:00 via Android
    @antiquezzz Android 底层部署了这个功能(包含读取,写入权限的控制),想用的话可以整一个 rikka 的 appops 加以利用。
    但原生系统要到 Android12 才会将其发布。

    @watcher 几乎没有
    wipbssldo
        41
    wipbssldo  
       2021-04-16 14:21:08 +08:00
    @dingwen07 那说明 MIUI 掌握了你所有剪贴板里的码?
    mfmal
        42
    mfmal  
       2021-04-16 15:41:08 +08:00
    至于更大的监控
    我建议出生的时候就别上户口,那就没人能监控到你
    xingshu1990
        43
    xingshu1990  
    OP
       2021-04-16 15:43:48 +08:00
    @mfmal #42 可以啊,拐到一些地方 打折了手和脚当乞丐,或者关到黑砖窑,或者是偏僻矿区。
    also24
        44
    also24  
       2021-04-16 16:06:56 +08:00
    @xingshu1990 #31
    对应验证码场景,其实 Android 在 8.0 版本开始就已经提供了解决方案。(需要厂商主动接入)
    https://danielw.cn/android-new-feature-sms-verification

    xiangbohua
        45
    xiangbohua  
       2021-04-16 16:29:26 +08:00
    希望 IOS 后面出禁止访问剪贴板的功能吧,毕竟我知道她访问了剪贴板又怎么样呢?
    looplj
        46
    looplj  
       2021-04-16 16:36:47 +08:00
    然后 ios 并不可以禁用复制剪切板
    Biggoldfish
        47
    Biggoldfish  
       2021-04-16 16:44:16 +08:00 via Android
    动心思那么直接卸载就是了
    charlie21
        48
    charlie21  
       2021-04-16 17:14:02 +08:00
    都是月亮惹的祸
    avia1ae
        49
    avia1ae  
    &nsp;  2021-04-16 17:39:54 +08:00
    苹果现在的功能挤牙膏太严重了,相比 IDFA,更希望这次能加入剪切板的隐私权限,IDFA 无非就是一个匿名识别码,剪切板这种东西能包含的东西就多了去了。
    qianmoumou
        50
    qianmoumou  
       2021-04-16 17:42:46 +08:00
    悲观的说,可以躺平了,国内的隐私环境,这点小聪明解决不了什么。现在基本一个手机号走天下,从广告投放的角度无所遁形。只要消费理性,无所谓的。
    secretman
        51
    secretman  
       2021-04-16 18:08:39 +08:00
    MIUI 就能控制剪贴板权限啊,1202 年了,可以醒醒了,还有别说 MIUI 广告的问题了,我用了快一年,拿到手就关广告,根本就没弹广告~
    YY
        52
    YY  
       2021-04-16 19:33:02 +08:00
    Mac 上不能随便复制东西了 自动同步到 iPhone
    hkezh
        53
    hkezh  
       2021-04-16 19:52:31 +08:00 via iPhone
    应该禁止一部分 app 读取剪贴板
    Hackerchai
        54
    Hackerchai  
       2021-04-16 20:24:40 +08:00
    楼主这简书链接 https://www.jianshu.com/p/10a6900cc904?from=timeline 是我学长,碰熟人了
    godpeo
        55
    godpeo  
       2021-04-16 20:45:56 +08:00 via iPhone
    @also24 那其他安卓 app 不一样读取不了
    Ballmer
        56
    Ballmer  
       2021-04-16 22:34:07 +08:00
    @drunkdog 你甚至不愿意叫他们一句:股东和精神股东
    Jaeden
        57
    Jaeden  
       2021-04-17 06:39:28 +08:00
    开发人员不背这个锅,产品说了算
    xuanbg
        58
    xuanbg  
       2021-04-17 08:56:41 +08:00
    这和开发人员又个半毛钱关系啊,还不是产品花样多。。。
    xshenmi
        59
    xshenmi  
       2021-04-17 11:00:36 +08:00
    @secretman 喊一下米厂把“广告可以关”做成“广告可以开”怎么样?
    mfmal
        60
    mfmal  
       2021-04-17 11:48:30 +08:00 via iPhone
    @xingshu1990 那不挺自由的么,想找也找不到,也没人知道有这么个人存在,也不会有人找
    loarland
        61
    loarland  
       2021-04-18 10:33:56 +08:00
    开发背不了这个锅,这坑代码自己都不想去写
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3119 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 11:51 PVG 19:51 LAX 04:51 JFK 07:51
    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