2012-01-26 127 views
5

我工作的管理我自己的URL方案的應用程序,所以我實現回調:如何啓動打開我的自定義URL方案的應用程序?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions 
{ 
    // Get our launch URL 
    if (launchOptions != nil) 
    { 
     // Launch dictionary has data 
     NSURL* launchURL = [launchOptions objectForKey: UIApplicationLaunchOptionsURLKey]; 

     // Parse the URL 
     NSString* hostString = [launchURL host]; 

     blah blah blah... 

它的工作原理很不錯,但我需要啓動主叫應用程序(即打開該網址的應用程序)。所以我的問題是,這可能嗎?

我一直在玩UIApplicationLaunchOptionsSourceApplicationKey,但我無法通過其應用程序套件ID啓動應用程序。我可以嗎?

我也嘗試過無證的launchApplicationWithIdentifier:UIApplication,但我需要一個真正的解決方案,似乎解決方法只適用於模擬器。

任何想法?謝謝!

+0

我試圖做一個非常類似的事情,從Safari打開我的應用程序後,我想切換回Safari(無需加載新的URL)。我想簡單地打開Safari,就好像我使用任務切換器切換到它一樣。請你能詳細說明你用來達到這個目標的「無證方法」嗎? – Plasma

+0

iPad上的一種解決方法是讓用戶意識到內置手勢:*四指橫向輕掃屏幕以返回到以前的應用*。似乎只有iPad,而不是手持設備。 –

回答

2

唯一的辦法是讓兩個應用都支持自定義URL方案。然後,將調用者URL嵌入到其他應用的URL中。

例如,假設App2想以某種方式調用App1,以便App1可以「回調」到App2。它會像這樣創建和打開一個URL:

app1://?caller=app2%3A%2F%2Fblabla 

當你解碼caller部分,你會回來的字符串app2://blabla然後你可以再開用openURL:到「回撥」。

+0

是的,恐怕沒有每個應用程序支持自定義URL方案是不可能的。只是想用盡所有可能,謝謝DarkDust! – zapador

+1

應該有一些其他的方式..你見過Facebook應用程序...我們去facebook應用程序進行身份驗證,然後facebook應用程序打開我們的應用程序..即使當我們的應用程序沒有自定義url方案.. – Saurabh

+2

這是因爲應用程序驗證與Facebook的SSO(單一登錄)註冊他們的自定義URL計劃與臉譜。 – Lance

相關問題