網頁

2012年7月11日 星期三

app溝通其他外部程式(一)

【環境:xCode4.3.2 , ios5.1 , USE ARC】
參考來源:Communicating with Other Apps


說明:
透過NSURL和UIApplicetion的功能,可以呼叫外部的應用程式。
其中todolist為URL Scheme,是讓應用程式間,彼此知道對方代號的名稱


Note: If more than one third-party app registers to handle the same URL scheme, there is currently no process for determining which app will be given that scheme.
這是Guide中特別標示的一段,表示若多個app均用相同的URL scheme,則目前無法判斷。
有趣的是,國外網站有做一個搜尋目前已經使用過的scheme,目的就是為了盡量避免使用相同的scheme,並且幫助他們建立數據庫:Zwapp


關於URL scheme的介紹,可參考:ios URL Scheme Reference


//使用下方的語法,就可以透過你的app去呼叫外部的應用程式,但前提是必須取得外部應用程式的URL Scheme,才可以呼叫得到。 
NSURL *myURL = [NSURL URLWithString:@"todolist:"];
//『todolist』就是外部app的URL Scheme
[[UIApplication sharedApplication] openURL:myURL];

至於如何呼叫外部app後,做一些事情後,再返回原本的app?


若要帶一些參數呢??

<解析回傳的URL使用方式請參考:NSURL根據RFC 1808下的解析方式>


若想要返回dic的資料呢??


ios提供給我們一個很好的方法,就請參考下一篇文章:app溝通其他外部程式(二)


ps:
要注意的有:從外部app返回後,是返回最後app關到背景的頁面,無法指定跳到任意頁面。
除非動一點小手腳,這邊可以參考UIApplicationDelegate Protocol Reference有興趣的,可以參考,這邊就不多做討論。

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

沒有留言:

張貼留言