【问题标题】:Objective-C iPhone - Open URL in Safari immediately and exit appObjective-C iPhone - 立即在 Safari 中打开 URL 并退出应用程序
【发布时间】:2014-06-10 01:18:44
【问题描述】:

我可以使用以下方法在 Safari 中打开 URL:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.myurl.com"]];

它工作正常,但在模拟器中需要超过 10 秒。我已经尝试将此代码放入应用程序委托的 didFinishLauchingWithOptions 方法或我的视图控制器的 viewDidLoad 方法中,但仍然需要 10 多秒才能加载。在它突然打开 Safari 之前,我得到一个黑屏,在整个持续时间内什么都没有。有什么办法可以减少加载时间吗?这只是一个模拟器错误吗?我仍在尝试注册我的设备以在实际设备上进行测试。

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

我的目标是让应用程序在启动时立即在 safari 中启动硬编码 URL。应用程序应立即退出,以便在用户点击应用程序图标时能够再次执行此操作。有什么建议吗?

这是我之前在我的 ViewController.m 中尝试过的一个 sn-p,如果你想自己尝试一下,它会有 10 秒的黑屏:

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

【问题讨论】:

  • 这只是为了好玩,还是您打算让苹果批准该应用程序分发?如果是这样,那么 (1) 只是启动浏览器,以及 (2) 随时调用 exit() 都需要批准。
  • 在 Info.plist 中将“应用程序不在后台运行”设置为 YES。
  • 这是一个企业应用商店。这只是将 2 个“应用程序”预先合并为一个的版本 1。第 2 版将提供更多功能,并使已安装第 1 版的用户能够更新他们的应用,而不是下载第二个应用。
  • 谢谢,卡恩。 exit(0) 运行得不是很好。我不知道你提到的关键财产。现在效果很好!

标签: ios objective-c safari uiapplication


【解决方案1】:

为什么不在 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;
}

【讨论】:

    【解决方案2】:

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

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

    您还可以通知选项参数和/或处理从completionHandler 语句返回的任何返回。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多