我有一个应用程序可以说2个应用程序 - app1,app2 让我们说我从app1 app2打开。 如何使用自定义网址方案从app2发回数据,例如在Facebook应用中? 如果我用url重新打开app1,我会看到回到app2,对我的情况不太好。 我想以模态方式打开app2,并将其与返回的数据一起解除。是否可能?
答案 0 :(得分:1)
您可以从info.plist文件为您的应用定义自定义网址架构。你可以检查SO上的现有线程。
在您的情况下,例如在app1中定义自定义网址myAppOneScheme
,在您的app2中,定义自定义网址myAppTwoScheme
。
当您从应用1打开app2时,请按照以下方式传递app1的网址:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"myAppOneScheme://test?callerURL= myAppOneScheme"]];
从app2 处理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;
}
当您完成app2中的操作并希望返回app1时,请打开来电者网址
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:"%@//testback?response=%@", caller url , datayouwanttoSendback]]];
现在,在你的app1中,再次处理open url方法并解析响应