2012-12-07 40 views
0

我正尝试使用来自Safari的URL启动我的应用程序。从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 ) 如果应用程序在后台(即,如果我双击home键,它的存在),应用正确启动和控制台显示Launched with URL。 不过,如果我完全关闭,这意味着,双击home键,按住应用程序,并单击减号,试图通过Safari浏览器再次启动它时,它只是显示一个黑色的屏幕和记录什么安慰。

在设备和模拟器上都会发生这种情况(5.1都有) 在应用程序完全关闭时应该调用另一个代理吗?

谢谢!

+0

您是否已将URL方案添加到您的info.plist中? – Stavash

+0

是的。如果应用程序处于后台,并且我使用URL方案记录正在发送的文本,则它显示正常。只有当它关闭时它才卡在黑色的窗口上 –

+0

你通常也有[self.window makeKeyAndVisible];在这两种方法中。 –

回答

1

如果您的应用程序是从Safari打开的,这意味着您已经正确实施了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 
{ 
} 

只是确保你已经正确编码您的网址可能是您的网址被打破的情况下。

+0

感谢您的回答,这就是我所做的。但是,如果应用程序完全关闭,则启动时会显示黑屏。如果它在后台,它的工作原理。 –

+0

你可以发布你用来打开你的应用程序的网址吗? –