2016-11-30 20 views
1

私はアプリに2つのアプリを言うことができます - app1、app2 私はapp1 app2から開くと言うことができます。 FacebookのようなカスタムURLスキームを使用してapp2からデータを送り返すにはどうすればよいですか? もし私がurlでapp1を再び開くと、私はapp2に戻り、私の場合はそれほど良い考えではないことがわかります。 私はapp2をモーダルで表示したいのですが、返されたデータで却下したいと思いますか?カスタムURLスキームの問題

答えて

1

info.plistファイルからアプリケーション用のカスタムURLスキーマを定義できます。あなたはこれについてSOの既存のスレッドをチェックすることができます。

あなたのケースでは、たとえば、app1-カスタムURLを定義します。myAppOneSchemeとapp2にカスタムURLを定義しますmyAppTwoScheme。 APP2から

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

、ハンドルOpenURLメソッド:アプリ1から、このようなパスAPP1のURLをAPP2開く

あなたはAPP2に操作で行われ、したい

- (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; 
} 

APP1、オープン呼び出し元のURLに戻って

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

今、あなたのAPP1で、再びオープンURLメソッドを処理し、[OK]を応答

+0

を解析し、この場合には、私は [[のUIApplication sharedApplication] OpenURLの後、戻ってAPP1に行くが表示されます:[NSURL URLWithString:[NSStringのstringWithFormat: "%@ // testback?response =%@"、caller url、datayouwtotoSendback] ios system apiからsafari.amに戻ってきますよね? –

+0

facebookのようになりたい 下から上に向かってモーダルで開き、コントローラーを閉じるように閉じる –

関連する問題