【问题标题】:Launch app from URL issue从 URL 问题启动应用程序
【发布时间】:2012-12-07 11:14:19
【问题描述】:

我正在尝试使用 Safari 中的 URL 启动我的应用程序。

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    NSLog(@"Launched with URL");
    return YES;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"Launched normally");
    // Override point for customization after application launch.
    return YES;
}

(也试过-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url ) 如果应用程序在后台(即,如果我双击主页按钮,它就在那里)应用程序正确启动并且控制台显示Launched with URL。 但是,如果我完全关闭它,也就是说,双击主页按钮,按住应用程序并单击减号,当尝试通过 Safari 再次启动它时,它只会显示黑屏并且不会向控制台记录任何内容。

这发生在设备和模拟器上(5.1 两者) 当应用程序完全关闭时是否应该调用另一个委托?

谢谢!

【问题讨论】:

  • 您是否将 URL 方案添加到您的 info.plist 中?
  • 是的。如果应用程序在后台并且我使用 URL 方案记录正在发送的文本,它显示正常。只有当它关闭时它才会卡在黑色窗口上
  • 你通常也有 [self.window makeKeyAndVisible];在这两种方法中。
  • 我认为这完全是我的错。当我断开设备与计算机的连接时,它开始工作。我相信这是因为杀死应用程序禁用了调试(SIGKILL)并且在重新启动它时失败了。未连接时,它可以工作。

标签: ios xcode url-scheme


【解决方案1】:

如果您的应用程序是从 Safari 打开的,这意味着您已经正确实现了 URL 架构。 在这些应用程序委托事件中处理 Opened URl

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:
                                                        (NSString *)sourceApplication
                                                        annotation:(id)annotation
{
}

只要确保您已正确编码您的网址,您的网址可能会中断。

【讨论】:

  • 感谢您的回答,这就是我所做的。但是,如果应用程序完全关闭,则在启动时,它会卡在黑屏上。如果它在后台,它可以工作。
  • 你能发布你用来打开你的应用程序的网址吗?
猜你喜欢
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
相关资源
最近更新 更多