V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
lancegin
V2EX  ›  iDev

iPhone 部分版本默认没有允许 app 访问蜂窝移动数据 有什么好的规避办法吗?

  •  
  •   lancegin ·
    lancegin · 2017-01-01 09:44:58 +08:00 · 16535 次点击
    这是一个创建于 2913 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前来看,部分国行手机存在这个 bug 。

    设置中 app 没有允许访问蜂窝移动数据导致无网络服务。

    是否可以在 app 打开前判断是否打开了蜂窝移动数据的开关?

    第 1 条附言  ·  2017-01-01 18:31:11 +08:00
    这里谈论的是部分手机出现的,默认不允许 app 访问蜂窝网络数据 并且 没有给出任何提示 的 bug ,并讨论相应的解决办法。
    请各位仔细看清楚大家讨论内容,不要跑偏。
    39 条回复    2017-01-06 15:00:52 +08:00
    oxoxoxox
        1
    oxoxoxox  
       2017-01-01 10:03:13 +08:00 via iPhone
    不是默认不允许,是 iOS10 的这个功能有 bug ,有时会不能在 APP 打开时弹出网络请求的通知,而且蜂窝数据里面也看不到这个 APP ,修改任意一个 APP 的蜂窝数据设定再打开之前的 APP 就可以弹出通知了
    lancegin
        2
    lancegin  
    OP
       2017-01-01 10:06:57 +08:00 via iPhone
    @oxoxoxox 这个 bug 有点恶心并且不友好。但是现在的情况是用户可以在设置中找到 app 并且可以手动打开蜂窝数据,就是系统默认设置没有打开开关。只有部分手机会出现这个问题,不明白啥情况
    helloSwift
        3
    helloSwift  
       2017-01-01 10:10:14 +08:00 via iPhone
    打开无线局域网助理,然后就会跳出那个选择
    最后记得关闭无线局域网助理就行
    lancegin
        4
    lancegin  
    OP
       2017-01-01 10:16:41 +08:00 via iPhone
    @helloSwift 但不能让用户额外安装一个助理啊
    codingadog
        5
    codingadog  
       2017-01-01 10:26:17 +08:00 via iPhone
    @lancegin 无线局域网助理是系统功能
    lancegin
        6
    lancegin  
    OP
       2017-01-01 11:21:35 +08:00 via iPhone
    @codingadog 能不能从 app 本身把这个问题规避呢,直接打开前能判断蜂窝数据开关状态吗?
    helloSwift
        7
    helloSwift  
       2017-01-01 11:23:24 +08:00 via iPhone
    @lancegin 不行,无线局域网助理是目前的最优解,屡试不爽
    lancegin
        8
    lancegin  
    OP
       2017-01-01 11:28:43 +08:00 via iPhone
    @helloSwift 那就有点尴尬了,如果我是 app 的开发者,那我还得引导用户打开无线局域网助理,,囧
    iA7489
        9
    iA7489  
       2017-01-01 11:30:34 +08:00 via iPhone   ❤️ 1
    为啥要默认允许

    有些 app 就不想 让它联网
    lancegin
        10
    lancegin  
    OP
       2017-01-01 11:37:14 +08:00 via iPhone
    @iA7489 是这个道理,有些 app 确实不想让它联网,,但是选择权得给用户啊,这个 bug 导致的问题是,默认不联网并且没有任何提示
    http://sspai.com/35720
    VinKing
        11
    VinKing  
       2017-01-01 11:48:59 +08:00
    需要重启一下再打开这个 app 就可以了,这个功能有 bug 。
    ScotGu
        12
    ScotGu  
       2017-01-01 12:18:38 +08:00
    就因为这个 BUG ,以为自己 OTA 升级有问题,害得我用 DFU 重新刷了一次, 结果问题依旧……
    重新下 APP 很痛苦,还得重新排位置。
    lancegin
        13
    lancegin  
    OP
       2017-01-01 12:35:50 +08:00 via iPhone
    @ScotGu 懂得如何解决是好的,不知道怎么解决的,这口锅就背在开发者头上了🤧
    moguiyu
        14
    moguiyu  
       2017-01-01 16:04:37 +08:00
    本来就是开发头上,凭什么默认 app 有权限使用网络啊? ios 又不是安卓。
    lancegin
        15
    lancegin  
    OP
       2017-01-01 16:08:57 +08:00 via iPhone
    @moguiyu 那凭什么默认没有权限呢?
    moguiyu
        16
    moguiyu  
       2017-01-01 17:15:41 +08:00
    @lancegin 因为手机是我的,系统我也信任, APP 必须跪在地上乖乖求我给权限,不然就去吃土吧。
    除非是安卓,即使我有各种守护,那一般是我跪在地上求各位 APP 爹。除非我 ROOT 篡位掉当爷,不过有的小 biao 砸,不开门给 ROOT 爷。
    wclebb
        17
    wclebb  
       2017-01-01 17:25:28 +08:00 via iPhone
    国行就有这个功能,要怪就怪 Android 在中国野蛮发展。
    wclebb
        18
    wclebb  
       2017-01-01 17:27:07 +08:00 via iPhone
    @moguiyu 就是这样。
    楼主作为开发者,没理由不知道。
    lancegin
        19
    lancegin  
    OP
       2017-01-01 18:21:57 +08:00 via iPhone
    @wclebb
    @moguiyu
    两位不要跑偏了,这个话题全篇讨论的都是 iOS 的一个 bug ,就是默认不给你网络权限,并且没有给你跪在地上的机会
    terence4444
        20
    terence4444  
       2017-01-01 18:34:07 +08:00 via iPhone
    碰到这种情况要进设置随便改一个 APP 的网络权限再启动问题 APP 就会弹出网络权限请求。
    Lentin
        21
    Lentin  
       2017-01-01 18:44:12 +08:00
    直接引导用户重启吧
    wclebb
        22
    wclebb  
       2017-01-01 20:10:00 +08:00 via iPhone
    无解,只能等 iOS 10.x 更新
    Totoria
        23
    Totoria  
       2017-01-01 21:56:56 +08:00
    今天刚好遇到这个 bug 。。改了一个其他 app 的权限 再打开 才出现
    ChengLuffy
        24
    ChengLuffy  
       2017-01-02 12:30:31 +08:00
    如果自己的 app 出现问题只能在判定没有网络连接或者网络连接失败后给出引导用户排查问题的方案
    lslqtz
        25
    lslqtz  
       2017-01-02 13:57:23 +08:00
    无解, iOS 10.2 都没修好这个问题。
    你可以判定没有网络连接时给出引导。
    allenhu
        26
    allenhu  
       2017-01-02 14:51:34 +08:00 via Android
    果粉表示你不需要这个功能
    lancegin
        27
    lancegin  
    OP
       2017-01-02 18:33:16 +08:00
    @allenhu 为什么觉得不需要呢
    lancegin
        28
    lancegin  
    OP
       2017-01-02 18:34:44 +08:00
    @ChengLuffy
    @lslqtz
    @wclebb
    @Lentin
    目前只能这么尴尬的解决了,确实没有什么好的办法
    wclebb
        29
    wclebb  
       2017-01-02 19:25:34 +08:00 via iPhone
    话说这个问题,我遇到的很少。
    或者我遇到的问题可能跟你们一样,只不过我的解决方案是:等。

    遇到新软件弹出要求连接时,我给允许,然后等一分钟就可以了。不行则直接强退,一般可以了。

    但这不是优雅解决的方案。
    lancegin
        30
    lancegin  
    OP
       2017-01-02 19:44:46 +08:00
    @wclebb 确实遇到的很少 但是只要有一个用户遇到 那他就会下意识觉得 ok 你这个 app 就是一个有问题的 app ,绝对不会想到说是 iOS 系统本身的 bug 这个才是最蛋疼也可以说对于开发者而言很不公平的地方
    wclebb
        31
    wclebb  
       2017-01-02 20:12:02 +08:00
    @lancegin 然而这些用户对开发者来说最好的地方在于,他们最听话。
    给什么权限就给权限,什么位置通知统统同意。

    他不会在意这个权限是什么概念,只在意你的软件是干嘛的。

    所以你可以做一个简单的判断,如果能获取能够区分手机型号的(至少能判断是国行手机就行了了。)
    然后你做个简单的教程,就可以了。

    我想到最简单方法就是区分软件,在中国就做中国特别版教育,国外就不做特别版教育。在中国就教用户怎么开启,遇到问题就怎么大概怎么解决。
    icris
        32
    icris  
       2017-01-03 09:47:00 +08:00
    @lancegin
    "那凭什么默认没有权限呢?"
    -- 因为第一次打开应用必然没有权限,如果默认有权限,就算不出 bug 用户给了权限应用第一次网络连接也已经失败了,很多应用都是第一次的初始化失败只能给了权限后强退重新打开,就是因为不“默认没有权限”。
    lancegin
        33
    lancegin  
    OP
       2017-01-03 10:24:59 +08:00
    @icris 这里“默认没有权限”的意思是 没有给用户选择权,直接禁止了用户的网络权限,,如果第一次打开给了选择权那就不存在这个问题了
    galenzhao
        34
    galenzhao  
       2017-01-03 13:51:42 +08:00
    在 didapear 后 while 下判断是否禁用网络
    一直 alert+尝试 request
    我们是这个干的
    icris
        35
    icris  
       2017-01-03 14:24:01 +08:00
    @lancegin
    "第一次打开给了选择权"的时候直到用户选择了同意之前,应用仍然没有联网权限。
    lancegin
        36
    lancegin  
    OP
       2017-01-03 14:30:43 +08:00
    @icris 这是自然 也不次纠结与这个细节 问题出在这个选择权有没有给出上面


    @galenzhao 差不多的解决方式 直接 alert 进行引导
    icris
        37
    icris  
       2017-01-03 14:41:32 +08:00
    @lancegin
    所以“默认 app 有权限使用网络”是错的,而且确实有很多应用第一次初始化请求失败给了权限以后没地方触发这个请求了只能强退。
    lancegin
        38
    lancegin  
    OP
       2017-01-03 18:04:05 +08:00
    @icris "默认 app 有权限"或者“默认 app 没有权限”都是错的,选择权需要给用户
    iimgal
        39
    iimgal  
       2017-01-06 15:00:52 +08:00
    打开无线局域网助理再关掉, 或者改变一下任何一个其他应用的无线网设置.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1512 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:06 · PVG 01:06 · LAX 09:06 · JFK 12:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.