V2EX 首页   注册   登录
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/
iOS 开发实用书单
iPhone App Development: The Missing Manual
Cocoa and Objective-C: Up and Running
Cocoa Programming for Mac OS X
深入浅出设计模式 Head First Design Patterns
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
V2EX  ›  iDev

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

  •  
  •   lancegin · 50 天前 · 2273 次点击
    这是一个创建于 50 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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


    @galenzhao 差不多的解决方式 直接 alert 进行引导
        37
    icris   47 天前
    @lancegin
    所以“默认 app 有权限使用网络”是错的,而且确实有很多应用第一次初始化请求失败给了权限以后没地方触发这个请求了只能强退。
        38
    lancegin   47 天前
    @icris "默认 app 有权限"或者“默认 app 没有权限”都是错的,选择权需要给用户
        39
    iimgal   44 天前
    打开无线局域网助理再关掉, 或者改变一下任何一个其他应用的无线网设置.
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2231 人在线   最高记录 2447   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 53ms · UTC 06:32 · PVG 14:32 · LAX 22:32 · JFK 01:32
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1