Ios Objective-C iPhone-立即在Safari中打开URL并退出应用程序

Ios Objective-C iPhone-立即在Safari中打开URL并退出应用程序,ios,objective-c,safari,uiapplication,Ios,Objective C,Safari,Uiapplication,我可以使用以下工具在Safari中打开URL: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.myurl.com"]]; 它工作正常,但在模拟器中需要10秒以上。我已尝试将此代码放入应用程序代理的didfishlauchingWithOptions方法或我的视图控制器的viewDidLoad方法中,但加载仍需要10秒以上的时间。在它突然打开Safari之前,我得到了一个黑屏,上面什么都没有。有没有办法

我可以使用以下工具在Safari中打开URL:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.myurl.com"]];
它工作正常,但在模拟器中需要10秒以上。我已尝试将此代码放入应用程序代理的
didfishlauchingWithOptions
方法或我的视图控制器的
viewDidLoad
方法中,但加载仍需要10秒以上的时间。在它突然打开Safari之前,我得到了一个黑屏,上面什么都没有。有没有办法缩短装载时间?这只是一个模拟器错误吗??我仍在尝试注册我的设备,以便在实际设备上进行测试

有趣的是,当我将其添加到UIButton的动作方法中时,应用程序会立即加载,但用户必须点击UIButton才能在Safari中启动URL

我的目标是开发一个应用程序,在启动后,立即在safari中启动一个硬编码URL。应用程序应立即退出,以便在用户点击应用程序图标时能够再次退出。有什么建议吗

下面是我之前在ViewController.m中尝试的一个片段,如果您想自己尝试,它会有10秒的黑屏:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.myurl.com"]];
    exit(0);
}

为什么不在Mobile Safari中使用添加到主屏幕的

但是,如果您想在启动应用程序之初调用Safari,请尝试以下操作:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.


    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];
        exit(0);
    });

    return YES;
}

关于这个问题只有一个更新。。。在iOS 10之后,苹果建议改用以下方法:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"] options:@{} completionHandler:nil];

您还可以通知options参数和/或处理completionHandler语句返回的任何内容。

这只是为了好玩,还是您计划让apple批准该应用程序分发?如果是这样,则(1)仅启动浏览器和(2)随时调用exit()都是供批准的显示停止。在Info.plist中将“应用程序不在后台运行”设置为“是”。这是一个企业应用程序商店。这只是将2个“应用程序”预合并为一个的版本1。第2版将有更多内容,并将允许已经安装第1版的用户更新他们的应用程序,而不是下载第二个应用程序。谢谢,卡恩。出口(0)工作得不太好。我不知道你提到的关键财产。它现在工作得很好!