为什么 iOS 不内置扫描二维码的功能? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KillPaul
V2EX    iPhone

为什么 iOS 不内置扫描二维码的功能?

  •  
  •   KillPaul 2015 年 11 月 3 日 15521 次点击
    这是一个创建于 3722 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直觉得很奇怪。要是在自带相机里添加这个功能,不是很棒的一件事吗?
    逻辑我都想好了,在拍照时如果识别到二维码,就在二维码上显示一个框框,让人知道可以点击那个框框来进行识别的操作,不点按则仍然是在拍照,不会影响拍照体验。
    18 条回复    2017-12-07 21:47:19 +08:00
    EPCoo
        1
    EPCoo  
       2015 年 11 月 3 日 via iPhone
    不安全吧?
    KillPaul
        2
    KillPaul  
    OP
       2015 年 11 月 3 日
    @EPCoo 为何。
    cxbig
        4
    cxbig  
       2015 年 11 月 3 日
    我感觉二维码就国内用的多,欧美用这个的场合太少了。不是刚需。
    abelyao
        5
    abelyao  
       2015 年 11 月 3 日
    国内许多二维码的使用场景(例如微信,扫码支付等)都需要在解析二维码之后有相应的业务功能, iOS 如果在相机里加个扫码顶多也就是跳转到 Safari 打开网页了,然而也没几个二维码的内容是网址。

    当然 iOS 也可以开放接口供 微信 / 支付宝 等 APP 去调用,但是… 我点开的 APP 是相机,相机的本质是拍照、录像,具体什么业务功能,我还是点开相应的 APP 吧。
    strongcoder
        6
    strongcoder  
       2015 年 11 月 3 日 via iPad
    又不是小米
    honeycomb
        7
    honeycomb  
       2015 年 11 月 3 日
    @abelyao
    但是总的来说
    我并不允许 App 使用非原生的分享机制
    因此让 app 自身调用二维码,只会出现在登陆的场景
    abelyao
        8
    abelyao  
       2015 年 11 月 3 日
    @honeycomb 抱歉,反复看了几遍你的回复,读不懂你的意思,这之间的逻辑是…?
    honeycomb
        9
    honeycomb  
       2015 年 11 月 3 日
    @abelyao

    逻辑是这样的:

    在 Android 里,如果一个应用自身没有权力调用摄像头,但还是想拍照的话,它可以:
    发起一个 Intent 到系统的拍照应用,然后用户在系统拍照应用里拍照,系统拍照应用会把拍好的照片返回给那个应用,这种情况也适用于二维码,只是负责获取二维码的应用是另一个第三方应用。

    如此对最小权限原则更友好。

    现在的软件都喜欢搞闭环,动不动来一个二维码,要求用 XX 扫一扫

    这样不太好:
    如果我的手机上有这样的软件
    1 ,我会想办法把它变成开环的
    2 ,如果做不到 1 ,那就不使用 1 涉及的功能
    3 ,如果 1 涉及的功能是这个应用的不可缺少的核心特性,大概会卸载吧

    具体的例子像微信的公众号,内部的分享
    如果要打开它们,必须先把这件事告诉腾讯(用户点击了它),并用微信内置的浏览器打开后,才可用外部浏览器访问。
    所以我不接受通过微信分享的网页,这么做不合适。
    techyan
        10
    techyan  
       2015 年 11 月 4 日 via iPhone
    Passbook ( Wallet )内置扫二维码功能。不知道算不算。。
    abelyao
        11
    abelyao  
       2015 年 11 月 4 日
    @honeycomb

    明白你的意思了,能否总结为,你希望能以最小权限执行一些 APP 自己的业务。

    我觉得 APP 搞闭环,这是开发商出于拉拢用户为目的、提高装机量的一个措施,即便 iOS 的相机功能支持了扫码,到处可见的海报仍然会带一句“使用 XXX 扫描二维码”吧。整体的生态就是这尿性哎。

    另外,如果你想体验某 APP 的业务功能,例如使用微信扫码支付,那么即便 iOS 的相机支持了扫码,扫完码之后仍然需要调用微信进行支付。而本质上来说,我既然扫码了,我知道这是一个使用微信支付的二维码,那么理所当然的,我选择打开微信(或者以后可能出个微信钱包?)而不会去打开相机啊,我要付钱跟拍照有什么关系呢? 这是我在 #5 想表达的意思。

    你可以说如果这样不友好,你选择卸载微信,或者不使用微信扫码支付,那当然也 OK 的,每个用户都有自己的习惯。

    最后,你说到的分享,不,你完全可以单独复制一条消息(如果消息内只有一个 URL )然后打开 Safari 进行访问。如果你说应该在你点击 URL 的时候,就弹出一个选项让你选择使用微信内置浏览器、还是使用 Safari 进行访问的话,我想说,微信的用户群体是非常庞大的,大多数人希望能点击 URL 直接就打开了,而不是为了极少数人的需求增加一个操作(或许微信应该在设置中加入一个选项“默认使用 Safari 打开网页”?)
    lobbk1209
        12
    lobbk1209  
       2015 年 11 月 4 日
    @abelyao 但是现在有了 universal link ,是可以直接使用 URL 跳转到对应 APP 的,所以在 iOS 9 下,只要 APP 支持,一个系统层级的二维码访问方式应该还是挺理想的。
    zonghua
        13
    zonghua  
       2015 年 11 月 4 日 via iPhone
    @lobbk1209 Windows phone 8 是有的,搜索键进去就有。后来更新了就没有了
    gaoios
        14
    gaoios  
       2015 年 11 月 4 日 via iPhone
    写代码的时候有个单一功能原则,这样的设计比较利于重用,每块的功能也比较清晰,也是很好的设计 ,从代码到产品会不会是也是遵循这个原则,个人的看法
    expkzb
        15
    expkzb  
       2015 年 11 月 4 日
    "拥有 QR 码专利的日本企业尽管宣称不收取专利费,但国外企业对其技术标准,在推广期放开免费使用,一旦形成规模或技术更新后随即收取高额费用已成为惯例。"
    honeycomb
        16
    honeycomb  
       2015 年 11 月 4 日
    @abelyao

    “你希望能以最小权限执行一些 APP 自己的业务”
    是的,只要一件事情能不用 app 自己做,就应该不让 app 自己做,特别是那些超级 app


    “而不会去打开相机啊,我要付钱跟拍照有什么关系呢? 这是我在 #5 想表达的意思。 ”
    对于这件事情的,我的理解是:
    1 ,因为要付钱,
    2 ,付钱依赖于解析出二维码,
    3 ,解析出二维码依赖于对二维码拍照

    所以我要付钱,和微信去扫二维码有什么关系

    而通用的 3 的做法是使用第三方软件,如 barcodescanner 之类的 app


    至于
    “你完全可以单独复制一条消息(如果消息内只有一个 URL )然后打开 Safari 进行访问”
    这是做不到的,因为微信内大多数的分享并不能复制出 URL
    ralphtsui
        17
    ralphtsui  
       2017 年 9 月 21 日
    嗯现在有了,欢迎楼主更新 iOS11
    KillPaul
        18
    KillPaul  
    OP
       2017 年 12 月 7 日
    @ralphtsui 哈哈哈看来我预言成功
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2766 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:59 PVG 22:59 LAX 06:59 JFK 09:59
    Do have faith in what you're doing.
    ubao msn 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