【问题标题】:Calling the iCloud Section of iOS Settings App Through a UIAlertView通过 UIAlertView 调用 iOS 设置应用程序的 iCloud 部分
【发布时间】:2014-10-08 04:48:55
【问题描述】:

我的应用程序中有一个特定情况,它通过两个按钮向用户显示UIAlertViewSettingsAsk me Later。稍后再问我只是一个cancel,但我希望设置为:

1) 打开 iOS 设置应用程序的 iCloud 部分 2)如果这不可能,只需打开设置。

这是一个仅限 iOS 7 的应用程序,我看到很多文章说在 iOS 5 之后它不再受支持。如果 Authy 应用程序不提供相同的功能,我会完全接受。

在他们的应用程序中,如下面的屏幕截图所示,您可以转到设置的蓝牙部分,并且可以正常工作。我相信其他应用程序也会这样做。

我下面的代码目前没有做任何事情:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex != [alertView cancelButtonIndex])
    {
        NSLog(@"Settings selected");

        NSURL*url=[NSURL URLWithString:@"prefs:root=General&path=Bluetooth"];
        [[UIApplication sharedApplication] openURL:url];

    }

根据这篇 Stack Overflow 帖子 (iOS UIAlertView button to go to Setting App)(这确实是旧的),我尝试了大多数变体,但无法打开 Settings.app。当我点击它时它什么也没做。

如果无法访问 iCloud 部分,如果可能的话,我不介意将用户发送到 Settings.app?

任何想法将不胜感激。

【问题讨论】:

  • 1) 通过 iOS 7,无法启动“设置”应用程序(到任何页面)。 2)发布的屏幕截图与您的问题有什么关系?
  • 感谢 rmaddy - 感谢您的回复。发布的屏幕截图突出显示了一个应用程序(Authy)能够做到这一点 - 通过单击“设置”按钮,您将被带到“设置”应用程序的蓝牙部分,因此我想表明这就是我想要实现的目标。 . 并且如果他们做到了并且他们没有在 App Store 中被拒绝,那么一定有一些方法可以实现它..
  • 这是iOS提供的系统提示,不是app提供的。
  • 啊.. 这真的很有意义。我认为这是该应用程序能够做到的事情,但既然你提到它,系统警报就非常有意义。我的错!我应该结束这个问题,还是你想回答它,我可以接受?再次感谢 Rmaddy - 对为什么它对我不起作用而发疯

标签: ios settings uialertview


【解决方案1】:

您可以启动设置应用程序的 iCloud 部分。我已经在 iOS 9.3 和 10.2 上对此进行了测试。

步骤如下:

  1. 从项目设置/信息/URL 类型中为您的应用添加新的 URL 方案。

  1. 现在从您的 UIAlertView,您可以使用此代码打开设置/iCloud 应用程序。

    let iCloudURL = URL(string: "App-prefs:root=CASTLE")
    if let settingsURL = iCloudURL {
         UIApplication.shared.openURL(settingsURL)
    }
    

iOS 10.* 的注意事项:openURL 方法实际上已被弃用,您应该使用 open with completion 处理程序方法:

open(_ url: URL, 
     options: [String : Any] = [:], 
     completionHandler completion: ((Bool) -> Void)? = nil)

参考文献

【讨论】:

    猜你喜欢
    • 2012-02-23
    • 2014-06-24
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 2017-01-14
    • 2012-07-02
    相关资源
    最近更新 更多