1)在plist檔案中,註冊對外介面
滑鼠右擊information property list ,然後從列表中選擇url types
右擊 add row 新增乙個物件(item)右擊item add row
從列表中選擇 url schemes 再右擊新增乙個物件(item1)
plist如下圖所示:
2)呼叫方法
在你需要呼叫上面註冊過對外介面的應用中,新增下面**即可:
通過上述兩個步驟,你可以在你的應用中,讓使用者開啟你的其它應用
二、呼叫其它應用的方法
1)呼叫 自帶mail
2)呼叫 **phone
3)呼叫 sms
4)呼叫自帶 瀏覽器 safari
5)呼叫 remote
上面是最基本的語句,沒什麼處理過程。
如:呼叫phone可以傳遞號碼,呼叫sms只能設定號碼,不能初始化sms內容。
如果乙個應用程式支援一些已知型別的url,您就可以通過對應的url模式和該程式進行通訊。然而,在大多數情況下,url只是用於簡單地啟動乙個應用程式並顯示一些和呼叫方有關的資訊。舉例來說,對於乙個用於管理位址資訊的應用程式,您就可以在傳送給它的url中包含乙個maps程式可以處理的位址,以便顯示相應的位置。這個級別的通訊為使用者創造乙個整合度高得多的環境,減少應用程式重新實現裝置上其它程式已經實現的功能的必要性。
方法。openurl:
方法會啟動註冊接收該url型別的應用程式,並將url傳給它。當使用者最終退出該應用程式時,系統通常會重新啟動您的應用程式,但並不總是這樣。系統會考慮使用者在url處理程式中的動作及在使用者看來返回您的應用程式是否合理,然後做出決定。
下面的**片斷展示了乙個程式如何請求另乙個程式提供的服務(假定這個例子中的「todolist」是由應用程式註冊的定製模式):
nsurl *myurl = [nsurl urlwithstring:@"todolist:"];如果您的url型別包含的模式和蘋果定義的一樣,則啟動的是蘋果提供的程式,而不是您的程式。如果有多個第三方的應用程式註冊處理同樣的url模式,則該型別的url由哪個程式處理是沒有定義的。 。
您可以為自己的應用程式註冊包含定製模式的url型別。定製的url模式是第三方應用程式和其它程式及系統進行互動的機制。通過定製的url模式,應用程式可以將自己的服務提供給其它程式。
註冊定製的url模式
部分中介紹過這個屬性了。cfbundleurltypes
屬性是應用程式的info.plist
檔案中的乙個字典陣列,每個字典負責定義乙個應用程式支援的url型別。表1-6描述了cfbundleurltypes
字典的鍵和值。
表1-6cfbundleurltypes
屬性的鍵和值 鍵
值cfbundleurlname
這是個字串,表示url型別的抽象名。為了確保其唯一性,建議您使用反向dns風格的標識,比如com.acme.myscheme
。
這裡提供的url型別名是乙個指向本地化字串的鍵,該字串位於本地化語言包子目錄中的infoplist.strings
檔案中。本地化字串是人類可識別的url型別名稱,用相應的語言來表示。
cfbundleurlschemes
這是個url模式的陣列,表示歸屬於這個url型別的url。每個模式都是乙個字串。屬於指定url型別的url都帶有它們的模式元件。
圖1-7顯示了乙個正在用內建的xcode編輯器編輯的info.plist
檔案。在這個圖中,左列中的url型別入口相當於您直接加入到info.plist檔案的cfbundleurltypes
鍵。類似地,「url identifier」和「url schemes」入口相當於cfbundleurlname
和cfbundleurlschemes
鍵。
圖1-7在info.plist
檔案中定義乙個定製的url模式
您在對cfbundleurltypes
屬性進行定義,從而註冊帶有定製模式的url型別之後,可以通過下面的方式來進行測試:
連編、安裝、和執行您的應用程式。
回到home螢幕,啟動safari(在iphone**器上,在選單上選擇hardware > home命令就可以回到home螢幕)。
在safari的位址列中,鍵入使用定製模式的url。
訊息。處理url請求
中實現這個方法。
物件表示的是cocoa touch框架中的url。nsurl
遵循rfc 1808規範,該類中包含一些方法,用於返回rfc 1808定義的各個url要素,包括使用者名稱、密碼、請求、片斷、和引數字串。與您註冊的定製模式相對應的「協議」可以使用這些url要素來傳遞各種資訊。
在程式清單1-2顯示的
程式清單1-2處理基於定製模式的url請求
if ([[url scheme] isequaltostring:@"todolist"])
taskname = [taskname stringbyreplacingpercentescapesusingencoding:nsutf8stringencoding];
item.todotask = taskname;
nsstring *datestring = [url fragment];
if (!datestring || [datestring isequaltostring:@"today"]) else
// format: yyyymmddhhmm (24-hour clock)
nsstring *curstr = [datestring substringwithrange:nsmakerange(0, 4)];
nsinteger yeardigit = [curstr integervalue];
curstr = [datestring substringwithrange:nsmakerange(4, 2)];
nsinteger monthdigit = [curstr integervalue];
curstr = [datestring substringwithrange:nsmakerange(6, 2)];
nsinteger daydigit = [curstr integervalue];
curstr = [datestring substringwithrange:nsmakerange(8, 2)];
nsinteger hourdigit = [curstr integervalue];
curstr = [datestring substringwithrange:nsmakerange(10, 2)];
nsinteger minutedigit = [curstr integervalue];
nsdatecomponents *datecomps = [[nsdatecomponents alloc] init];
[datecomps setyear:yeardigit];
[datecomps setmonth:monthdigit];
[datecomps setday:daydigit];
[datecomps sethour:hourdigit];
[datecomps setminute:minutedigit];
nscalendar *calendar = [nscalendar currentcalendar];
nsdate *itemdate = [calendar datefromcomponents:datecomps];
if (!itemdate)
item.datedue = itemdate;
[datecomps release];
}
[(nsmutablearray *)self.list addobject:item];
[item release];
return yes;
}
return no;
}
iOS 應用直接跳轉到App Store
目前是有兩種方法實現跳 一種是直接通過openurl 的方法跳轉進入,另一種是通過蘋果自身的skstoreproductviewcontroller 該控制器去實現,第一種 第二種 需要新增storekit.framework系統庫 實現skstoreproductviewcontrollerdel...
IOS 應用之間呼叫
1 在plist檔案中,註冊對外介面 滑鼠右擊information property list 然後從列表中選擇url types 右擊 add row 新增乙個物件 item 右擊item add row 從列表中選擇 url schemes 再右擊新增乙個物件 item1 plist如下圖所示...
iOS呼叫其他應用 的寫法
一 呼叫系統應用 1 呼叫其它應用的方法 1 呼叫 自帶mail 2 呼叫 phone 3 呼叫 sms 4 呼叫自帶 瀏覽器 safari 5 呼叫 remote 二 呼叫自己開發的應用 1 在plist檔案中,註冊對外介面 滑鼠右擊information property list 然後從列表中...