2016-11-30 64 views
1

我有一個應用程序可以說2個應用程序 - app1,app2 可以說我從app1 app2打開。 如何使用自定義網址方案從app2發回數據,就像在Facebook應用程序中一樣? 如果我用url重新打開app1,我會看到回到app2,它對我的​​情況不是好主意。 我想打開app2,就像模態地呈現,並用返回的數據解僱它。是否有可能?自定義Url Schemes問題

回答

1

您可以從info.plist文件爲您的應用程序定義自定義URL架構。您可以檢查SO上的現有線程。

以您的情況爲例,在app1中定義自定義網址myAppOneScheme,並在您的應用2中定義自定義網址myAppTwoScheme

當您從應用程序1打開APP 2,通APP1的網址是這樣的:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"myAppOneScheme://test?callerURL= myAppOneScheme"]]; 

從APP 2,處理OpenURL方法:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    NSLog(@"url recieved: %@", url); 
    NSLog(@"query string: %@", [url query]); 
    NSLog(@"host: %@", [url host]); 
    NSLog(@"url path: %@", [url path]); 
    NSDictionary *dict = [self parseQueryString:[url query]]; 
    NSLog(@"query dict: %@", dict); 
// NSString callerurl = parse callerURL from query 

// store callerurl in user default or global variable. 
    return YES; 
} 

當你在APP 2與操作完成,並希望回到APP1,開放呼叫者網址

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:"%@//testback?response=%@", caller url , datayouwanttoSendback]]]; 

現在,在APP1,再處理打開URL方法和解析響應

+0

好了,在這種情況下,我會看回APP1,後 [UIApplication的sharedApplication]的OpenURL:[NSURL URLWithString:[的NSString stringWithFormat: 「%@ // testback?response =%@」,調用者url,datayouwanttoSendback] from ios system api,like back to safari.am I right? –

+0

我希望它像facebook 從底部到頂部模態打開,並關閉它像解散控制器 –