專利名稱:iOS系統(tǒng)中應(yīng)用程序間通信的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及iOS系統(tǒng)中應(yīng)用程序間通信的方法及裝置。
背景技術(shù):
iOS系統(tǒng)是一種手持設(shè)備(如手機(jī)等)的操作系統(tǒng)。由于iOS系統(tǒng)比較封閉,每個應(yīng)用程序只能在為該改程序創(chuàng)建的文件系統(tǒng)中讀取文件,不可以去其它地方訪問,此區(qū)域被成為沙盒,所有的非代碼文件都要保存在此,例如圖像、圖標(biāo)、聲音、映像、屬性列表、文本文件等。iOS平臺上常見的安裝包有三種deb、ipa和pxl,其中,ipa格式是在iOS平臺上推出的專屬軟件安裝包。ipa文件實質(zhì)是一個zip壓縮包(不是rar或7z包),由于zip包不能記錄權(quán)限和所有者等信息,所以蘋果規(guī)定了 ipa的安裝方式,即全部ipa都會解包安裝在/var/mobile/Applications目錄下,全部文件和目錄的所有者及用戶組均設(shè)為mobile (ID為501),主程序(可執(zhí)行文件)的權(quán)限設(shè)為0755 (所有人都可以執(zhí)行,但只有所有者可以修改),可執(zhí)行文件在Plist中定義。全部目錄權(quán)限設(shè)為0755,而其它所有文件都設(shè)為0644 (僅所有者可以修改,其余人只允許讀取,全部人都不允許執(zhí)行)。ipa解包后并非直接放置于Applications目錄下,而是放在一串由隨機(jī)碼構(gòu)成的目錄下,其作用在于,只允許這個軟件運行在一個特定的沙盒(Sandbox)中,不能干擾其他軟件。由于這個軟件只能在這個特定的目錄下運行(當(dāng)然了,部分程序會調(diào)用系統(tǒng)的通訊錄、相機(jī)等組件,但仍然是受限制的),從而保證了整個系統(tǒng)的安全性和穩(wěn)定性。iOS操作系統(tǒng)的上述特點在保證整個系統(tǒng)的安全性和穩(wěn)定性的同時,也在其他方面存在著明顯的缺陷。例如,正是由于iOS的ipa安裝文件就如同一個個盒子一般,放在了/ var/ mob He/app Iications目錄下,以這個程序的眼光看外面,基本什么也看不到,以至于看不到在自己的目錄外的信息。因此,在iOS系統(tǒng)中,不同的應(yīng)用程序之間基本無法實現(xiàn)相
互通信。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的iOS系統(tǒng)中應(yīng)用程序間通信的方法及裝置,能夠?qū)崿F(xiàn)在iOS系統(tǒng)中不同應(yīng)用程序間的相互通信。依據(jù)本發(fā)明的一個方面,提供了一種iOS系統(tǒng)中應(yīng)用程序間通信的方法,用于在當(dāng)前應(yīng)用程序與目標(biāo)應(yīng)用程序之間進(jìn)行消息傳遞,所述目標(biāo)應(yīng)用程序具有定制的統(tǒng)一資源定位符方案URL Schemes字段信息,所述方法包括獲知目標(biāo)應(yīng)用程序的所述URL Schemes字段信息;根據(jù)所述URL Schemes字段信息生成所述目標(biāo)應(yīng)用程序的URL ;在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用^Application類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞??蛇x地,從當(dāng)前應(yīng)用程序傳遞到目標(biāo)應(yīng)用程序的消息包括啟動所述目標(biāo)應(yīng)用程序的消息,所述在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用^Application類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞包括在當(dāng)前應(yīng)用程序的顯示界面中提供所述目標(biāo)應(yīng)用程序的啟動入口 ;當(dāng)通過所述啟動入口接收到啟動所述目標(biāo)應(yīng)用程序的請求時,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,啟動所述目標(biāo)應(yīng)用程序。可選地,所述啟動所述目標(biāo)應(yīng)用程序之后,還包括將顯示焦點切換到目標(biāo)應(yīng)用程序的顯示界面??蛇x地,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序向目標(biāo)應(yīng)用程序傳遞的值,所述目標(biāo)應(yīng)用程序被啟動后,存儲傳遞過來的值或者根據(jù)傳遞過來的值執(zhí)行相應(yīng)的操作??蛇x地,當(dāng)前應(yīng)用程序也具有定制的URL Schemes字段信息,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序的信息,所述目標(biāo)應(yīng)用程序被啟動后,在目標(biāo)應(yīng)用程序的顯示界面顯示所述當(dāng)前應(yīng)用程序的啟動入口,以便通過該啟動入口返回到所述當(dāng)前應(yīng)用程序??蛇x地,還包括以目標(biāo)應(yīng)用程序的URL Schemes字段信息為參數(shù),調(diào)用UIApplication類的canOpenURL方法,判斷當(dāng)前操作系統(tǒng)中是否已安裝所述目標(biāo)應(yīng)用程序;如果尚未安裝,調(diào)用應(yīng)用程序安裝列表工具,并在所述應(yīng)用程序安裝列表工具中顯示出所述目標(biāo)應(yīng)用程序,以便提示用戶安裝所述目標(biāo)應(yīng)用程序。根據(jù)本發(fā)明的另一方面,提供了一種iOS系統(tǒng)中應(yīng)用程序間通信的裝置,用于在當(dāng)前應(yīng)用程序與目標(biāo)應(yīng)用程序之間進(jìn)行消息傳遞,所述目標(biāo)應(yīng)用程序的具有定制的統(tǒng)一資源定位符方案URL Schemes字段信息,所述裝置包括信息獲知單元,用于獲知目標(biāo)應(yīng)用程序的所述URL Schemes字段信息;生成單元,用于根據(jù)所述URL Schemes字段信息生成所述目標(biāo)應(yīng)用程序的URL ;調(diào)用單元,用于在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞??蛇x地,從當(dāng)前應(yīng)用程序傳遞到目標(biāo)應(yīng)用程序的消息包括啟動所述目標(biāo)應(yīng)用程序的消息,所述調(diào)用單元包括
入口提供子單元,用于在當(dāng)前應(yīng)用程序的顯示界面中提供所述目標(biāo)應(yīng)用程序的啟動入口 ;調(diào)用子單元,用于當(dāng)通過所述啟動入口接收到啟動所述目標(biāo)應(yīng)用程序的請求時,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,啟動所述目標(biāo)應(yīng)用程序??蛇x地,還包括界面切換單元,用于啟動所述目標(biāo)應(yīng)用程序之后,將顯示焦點切換到目標(biāo)應(yīng)用程序的顯示界面??蛇x地,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序向目標(biāo)應(yīng)用程序傳遞的值,所述目標(biāo)應(yīng)用程序被啟動后,存儲傳遞過來的值或者根據(jù)傳遞過來的值執(zhí)行相應(yīng)的操作。可選地,當(dāng)前應(yīng)用程序也具有定制的URL Schemes字段信息,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序的信息,所述目標(biāo)應(yīng)用程序被啟動后,在目標(biāo)應(yīng)用程序的顯示界面顯示所述當(dāng)前應(yīng)用程序的啟動入口,以便通過該啟動入口返回到所述當(dāng)前應(yīng)用程序??蛇x地,還包括判斷單元,用于以目標(biāo)應(yīng)用程序的URL Schemes字段信息為參數(shù),調(diào)用UIApplication類的canOpenURL方法,判斷當(dāng)前操作系統(tǒng)中是否已安裝所述目標(biāo)應(yīng)用程序;安裝工具調(diào)用單元,用于如果尚未安裝,調(diào)用應(yīng)用程序安裝列表工具,并在所述應(yīng)用程序安裝列表工具中顯示出所述目標(biāo)應(yīng)用程序,以便提示用戶安裝所述目標(biāo)應(yīng)用程序。根據(jù)本發(fā)明的iOS系統(tǒng)中應(yīng)用程序間通信的方法及裝置,可以為目標(biāo)應(yīng)用程序?qū)崿F(xiàn)定制的URL Schemes字段信息,這樣在需要從當(dāng)前應(yīng)用程序向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞時,就可以首先獲知目標(biāo)應(yīng)用程序的所述URLSchemes字段信息,然后根據(jù)URL Schemes字段信息生成目標(biāo)應(yīng)用程序的URL ;進(jìn)而,就可以在當(dāng)前應(yīng)用程序中,以目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,從而實現(xiàn)向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞。這樣,就可以在iOS系統(tǒng)中實現(xiàn)兩個應(yīng)用程序之間的消息傳遞。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個實施例的方法的流程圖;以及圖2示出了根據(jù)本發(fā)明一個實施例的裝置的示意圖。
具體實施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。本發(fā)明實施例首先提供了一種iOS系統(tǒng)中應(yīng)用程序間通信的方法,在該方法中,為了實現(xiàn)從一個應(yīng)用程序向另一個目標(biāo)應(yīng)用程序進(jìn)行消息傳遞,需要目標(biāo)應(yīng)用程序具有定制的統(tǒng)一資源定位符方案URL Schemes字段信息。為此,可以在目標(biāo)程序的Info, plist中指定目標(biāo)程序的URL Schemes字段,具體的,可以通過以下步驟實現(xiàn)步驟1:創(chuàng)建一個新的基于視圖的應(yīng)用程序,將其保存為URLSchemeExample ;步驟2 :在Xcode Groups & Files面板中,展開Resource部分,并且選擇<app>-1nfo. plist 文件;
步驟3 :鼠標(biāo)右鍵點擊Information Property List鍵,并點擊添加箭頭從列表中選擇“URL types”;步驟4 :展開Iteml,用鼠標(biāo)右鍵點擊URL identifier,并且再次選擇添加箭頭從列表中選擇URL Schemes ;步驟5 :選擇Iteml,并且將其值設(shè)置為myapplication ;步驟6 :打開 URLSchemeExampIeView Controller, m,取消對 viewDidLoad 方法的注釋,并且編寫如下代碼[pre][self, view setBackgroundColor:[UIColor redColor]];通過以上步驟就可以實現(xiàn)為目標(biāo)應(yīng)用程序提供定制的URL Schemes,當(dāng)然,如果需要實現(xiàn)當(dāng)前應(yīng)用程序與目標(biāo)應(yīng)用程序之間的相互調(diào)用,也可以同時為當(dāng)前應(yīng)用程序?qū)崿F(xiàn)上述定制的URL Schemes。在為目標(biāo)應(yīng)用程序?qū)崿F(xiàn)了上述定制的URL Schemes之后,就可以實現(xiàn)從當(dāng)前應(yīng)用程序向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞了,下面對具體的iOS系統(tǒng)中應(yīng)用程序間通信的方法進(jìn)行詳細(xì)地介紹。參見圖1,該方法可以包括以下步驟SlOl :獲知目標(biāo)應(yīng)用程序的所述URL Schemes字段信息;具體實現(xiàn)時,當(dāng)前應(yīng)用程序與目標(biāo)應(yīng)用程序可以是同一第三方開發(fā)商開發(fā)的具有一定相關(guān)性的應(yīng)用程序,例如,某開發(fā)商開發(fā)了兩款應(yīng)用程序,并且這兩款應(yīng)用程序在運行的過程中需要相互進(jìn)行通信,或者需要從其中一個應(yīng)用程序啟動另一個應(yīng)用程序等等,則在開發(fā)當(dāng)前應(yīng)用程序以及目標(biāo)應(yīng)用程序的過程中,就可以在程序的Info, plist中指定各自的URL Schemes字段,這樣由于具有相同的開發(fā)商,因此,當(dāng)前應(yīng)用程序以及目標(biāo)應(yīng)用程序就可以互相獲知對方的URL Schemes字段信息。另外,如果某應(yīng)用程序允許其他的應(yīng)用程序向其發(fā)送消息,也可以將其為自己定制的URL Schemes字段信息公開給其他應(yīng)用程序,這樣當(dāng)前應(yīng)用程序就可以根據(jù)目標(biāo)應(yīng)用程序公開的信息獲知其URL Schemes字段信息。S102 :根據(jù)所述URL Schemes字段信息生成所述目標(biāo)應(yīng)用程序的URL ;在獲知了目標(biāo)應(yīng)用程序的URL Schemes字段信息之后,就可以在此基礎(chǔ)上生成目標(biāo)應(yīng)用程序的 URL0 例如,URL= [NSURLURLWithString:@"http://***· com"],其中,http://***· com就是目標(biāo)應(yīng)用程序的URL Schemes字段信息,用于表示想要載入的應(yīng)用程序。另外,該URL中還可以包括發(fā)起調(diào)用的當(dāng)前應(yīng)用程序信息,或者還可以包括從當(dāng)前應(yīng)用程序傳遞給目標(biāo)應(yīng)用程序的值,等等。例如,某URL=MobileTestB://fromapp=MobileTestA&Ievel=Officer,其中 MobileTestB 為目標(biāo)應(yīng)用程序的 URL Schemes, fromapp=MobiIeTestA為當(dāng)前應(yīng)用程序,Ievel=Officer為當(dāng)前應(yīng)用程序向目標(biāo)應(yīng)用程序傳遞的值。S103 :在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞。需要說明的是,一些本地iOS應(yīng)用程序具有自己的URL Schemes,并且可以通過調(diào)用UIApplication類的openURL方法來啟動這些應(yīng)用程序。例如要啟動Mail應(yīng)用程序, 可以使用以下代碼NSURL *url=[NSURL URLffithString:1^maiIto: steveiapple. comsub ject=test//];[[UIApplication sharedAppIication]openURL:urI];要啟動SMS應(yīng)用程序,可以使用如下代碼NSURL *url=[NSURL URLWithString:-"sms:555-1234"];[[UIApplicationsharedAppIi cat i on]-penURL:urI];要撥打一個電話號碼,可以使用如下代碼NSURL *url=[NSURL URLWithString:@"tel://555-1234"];[[UIApplicationsharedAppIi cat i on]openURL:urI];要啟動Maps應(yīng)用程序來查找一個披薩店,可以使用如下代碼NSURL*url=[NSURLURLffithString:1^hp://maps, google. com/maps q = pizza"]
;[[UIAppIicationsharedAppIication]openURL:url]類似的,本發(fā)明實施例中,就可以基于生成的目標(biāo)應(yīng)用程序的URL,通過調(diào)用UIApplication類的openURL方法來啟動目標(biāo)應(yīng)用程序。例如,對于步驟S102的例子中提到的目標(biāo)應(yīng)用程序,則可以通過以下代碼來啟動url=[MobileTestB: //fromapp=Mobi IeTe stA&l eve l=officer] ; [ [UIApp Ii cat ionsharedAppIi cat i on]openURL:urI]在運行該代碼之后,就可以啟動目標(biāo)應(yīng)用程序,切換至目標(biāo)應(yīng)用程序的顯示界面。進(jìn)而,目標(biāo)應(yīng)用程序可以在-(B00L) application: (UIApplication*) applicationopenURL: (NSURL*)urI sourceApplication: (NSString*)sourceAppIicationannotation: (id)annotation函數(shù)中,解析該消息傳入的url,由于該例子中還存在從源應(yīng)用程序傳遞過來的值,因此,目標(biāo)應(yīng)用程序還可以對傳遞過來的值進(jìn)行存儲,或者根據(jù)傳遞值執(zhí)行相應(yīng)的操作,等等。在實際應(yīng)用中,當(dāng)前應(yīng)用程序可以在運行的過程中需要與目標(biāo)應(yīng)用程序進(jìn)行通信時,自動調(diào)用UIApplication類的openURL方法來啟動目標(biāo)應(yīng)用程序。或者,也可以在當(dāng)前應(yīng)用程序的顯示界面中生成目標(biāo)應(yīng)用程序的啟動入口,這樣,當(dāng)用戶從該啟動入口進(jìn)入時,就可以根據(jù)生成的目標(biāo)應(yīng)用程序的ur I,調(diào)用UIApp I i cat i on類的openURL方法來啟動目標(biāo)應(yīng)用程序。另外,正如前述例子中所示,url中還可以包括當(dāng)前應(yīng)用程序的信息,因此,目標(biāo)應(yīng)用程序在解析url之后,還可以在目標(biāo)應(yīng)用程序的界面上顯示出返回當(dāng)前應(yīng)用程序的入口,當(dāng)用戶從該入口進(jìn)入時,目標(biāo)應(yīng)用程序可以通過同樣的方式向當(dāng)前應(yīng)用程序發(fā)送通知消息,從而切換回當(dāng)前應(yīng)用程序。另外,在實際應(yīng)用中,當(dāng)前應(yīng)用程序可以在發(fā)送[[UlApplicationsharedApplication]openURL:url]前,還可以首先基于目標(biāo)應(yīng)用程序的URLSchemes字段信息,調(diào)用UIApplication類的canOpenURL方法,來判斷目標(biāo)應(yīng)用程序是否已經(jīng)被安裝在當(dāng)前的iOS系統(tǒng)中。例如,代碼可以為[[UIApplication sharedApplication]can0penURL:url],其中url為目標(biāo)應(yīng)用程序程序的URL Scheme,例如前述例子中的MobileTestB。如果返回結(jié)果為尚未安裝,則可以直接跳轉(zhuǎn)到iOS系統(tǒng)中的應(yīng)用程序安裝列表工具(例如AppStore),并在App Store工具中顯示出該目標(biāo)應(yīng)用程序,以便提示用戶安裝所述目標(biāo)應(yīng)用程序。與本發(fā)明實施例提供的iOS系統(tǒng)中應(yīng)用程序間通信的方法相對應(yīng),本發(fā)明實施例還提供了一種iOS系統(tǒng)中應(yīng)用程序間通信的裝置,該裝置可以用于在當(dāng)前應(yīng)用程序與目標(biāo)應(yīng)用程序之間進(jìn)行消息傳遞,所述目標(biāo)應(yīng)用程序的具有定制的統(tǒng)一資源定位符方案URLSchemes字段信息,參見圖2,所述裝置可以包括信息獲知單元201,用于獲知目標(biāo)應(yīng)用程序的所述URL Schemes字段信息;生成單元202,用于根據(jù)所述URL Schemes字段信息生成所述目標(biāo)應(yīng)用程序的URL ;調(diào)用單元203,用于在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞。其中,從當(dāng)前應(yīng)用程序傳遞到目標(biāo)應(yīng)用程序的消息包括啟動所述目標(biāo)應(yīng)用程序的消息,所述調(diào)用單元203可以包括入口提供子單元,用于在當(dāng)前應(yīng)用程序的顯示界面中提供所述目標(biāo)應(yīng)用程序的啟動入口 ;調(diào)用子單元,用于當(dāng)通過所述啟動入口接收到啟動所述目標(biāo)應(yīng)用程序的請求時,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,啟動所述目標(biāo)應(yīng)用程序。此時,該裝置還可以包括界面切換單元,用于啟動所述目標(biāo)應(yīng)用程序之后,將顯示焦點切換到目標(biāo)應(yīng)用程序的顯示界面。所述目標(biāo)應(yīng)用程序的URL中還可以包括當(dāng)前應(yīng)用程序向目標(biāo)應(yīng)用程序傳遞的值,所述目標(biāo)應(yīng)用程序被啟動后,存儲傳遞過來的值或者根據(jù)傳遞過來的值執(zhí)行相應(yīng)的操作。當(dāng)前應(yīng)用程序也可以具有定制的URL Schemes字段信息,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序的信息,所述目標(biāo)應(yīng)用程序被啟動后,在目標(biāo)應(yīng)用程序的顯示界面顯示所述當(dāng)前應(yīng)用程序的啟動入口,以便通過該啟動入口返回到所述當(dāng)前應(yīng)用程序。具體實現(xiàn)時,該裝置還可以包括判斷單元,用于以目標(biāo)應(yīng)用程序的URL Schemes字段信息為參數(shù),調(diào)用UIApplication類的canOpenURL方法,判斷當(dāng)前操作系統(tǒng)中是否已安裝所述目標(biāo)應(yīng)用程序;安裝工具調(diào)用單元,用于如果尚未安裝,調(diào)用應(yīng)用程序安裝列表工具,并在所述應(yīng)用程序安裝列表工具中顯示出所述目標(biāo)應(yīng)用程序,以便提示用戶安裝所述目標(biāo)應(yīng)用程序。在此提供的算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權(quán)利要求書由此明確地并入該具體實施方式
,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的iOS系統(tǒng)中應(yīng)用程序間通信的設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機(jī)程序和計算機(jī)程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機(jī)來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。本申請可以應(yīng)用于計算機(jī)系統(tǒng)/服務(wù)器,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。適于與計算機(jī)系統(tǒng)/服務(wù)器一起使用的眾所周知的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個人計算機(jī)系統(tǒng)、服務(wù)器計算機(jī)系統(tǒng)、瘦客戶機(jī)、厚客戶機(jī)、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)個人電腦、小型計算機(jī)系統(tǒng)、大型計算機(jī)系統(tǒng)和包括上述任何系統(tǒng)的分布式云計算技術(shù)環(huán)境,等等。計算機(jī)系統(tǒng)/服務(wù)器可以在由計算機(jī)系統(tǒng)執(zhí)行的計算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實現(xiàn)特定的抽象數(shù)據(jù)類型。計算機(jī)系統(tǒng)/服務(wù)器可以在分布式云計算環(huán)境中實施,分布式云計算環(huán)境中,任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備的本地或遠(yuǎn)程計算系統(tǒng)存儲介質(zhì)上。
權(quán)利要求
1.一種iOS系統(tǒng)中應(yīng)用程序間通信的方法,用于在當(dāng)前應(yīng)用程序與目標(biāo)應(yīng)用程序之間進(jìn)行消息傳遞,所述目標(biāo)應(yīng)用程序具有定制的統(tǒng)一資源定位符方案URL Schemes字段信息,所述方法包括 獲知目標(biāo)應(yīng)用程序的所述URL Schemes字段信息; 根據(jù)所述URL Schemes字段信息生成所述目標(biāo)應(yīng)用程序的URL ; 在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用^Application類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞。
2.如權(quán)利要求1所述的方法,從當(dāng)前應(yīng)用程序傳遞到目標(biāo)應(yīng)用程序的消息包括啟動所述目標(biāo)應(yīng)用程序的消息,所述在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞包括 在當(dāng)前應(yīng)用程序的顯示界面中提供所述目標(biāo)應(yīng)用程序的啟動入口; 當(dāng)通過所述啟動入口接收到啟動所述目標(biāo)應(yīng)用程序的請求時,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,啟動所述目標(biāo)應(yīng)用程序。
3.如權(quán)利要求2所述的方法,所述啟動所述目標(biāo)應(yīng)用程序之后,還包括 將顯示焦點切換到目標(biāo)應(yīng)用程序的顯示界面。
4.如權(quán)利要求2或3所述的方法,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序向目標(biāo)應(yīng)用程序傳遞的值,所述目標(biāo)應(yīng)用程序被啟動后,存儲傳遞過來的值或者根據(jù)傳遞過來的值執(zhí)行相應(yīng)的操作。
5.如權(quán)利要求2或3所述的方法,當(dāng)前應(yīng)用程序也具有定制的URLSchemes字段信息,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序的信息,所述目標(biāo)應(yīng)用程序被啟動后,在目標(biāo)應(yīng)用程序的顯示界面顯示所述當(dāng)前應(yīng)用程序的啟動入口,以便通過該啟動入口返回到所述當(dāng)前應(yīng)用程序。
6.如權(quán)利要求1至3任一項所述的方法,還包括 以目標(biāo)應(yīng)用程序的URL Schemes字段信息為參數(shù),調(diào)用UIApplication類的canOpenURL方法,判斷當(dāng)前操作系統(tǒng)中是否已安裝所述目標(biāo)應(yīng)用程序; 如果尚未安裝,調(diào)用應(yīng)用程序安裝列表工具,并在所述應(yīng)用程序安裝列表工具中顯示出所述目標(biāo)應(yīng)用程序,以便提示用戶安裝所述目標(biāo)應(yīng)用程序。
7.—種iOS系統(tǒng)中應(yīng)用程序間通信的裝置,用于在當(dāng)前應(yīng)用程序與目標(biāo)應(yīng)用程序之間進(jìn)行消息傳遞,所述目標(biāo)應(yīng)用程序的具有定制的統(tǒng)一資源定位符方案URL Schemes字段信息,所述裝置包括 信息獲知單元,用于獲知目標(biāo)應(yīng)用程序的所述URL Schemes字段信息; 生成單元,用于根據(jù)所述URL Schemes字段信息生成所述目標(biāo)應(yīng)用程序的URL ; 調(diào)用單元,用于在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞。
8.如權(quán)利要求7所述的裝置,從當(dāng)前應(yīng)用程序傳遞到目標(biāo)應(yīng)用程序的消息包括啟動所述目標(biāo)應(yīng)用程序的消息,所述調(diào)用單元包括 入口提供子單元,用于在當(dāng)前應(yīng)用程序的顯示界面中提供所述目標(biāo)應(yīng)用程序的啟動入Π ; 調(diào)用子單元,用于當(dāng)通過所述啟動入口接收到啟動所述目標(biāo)應(yīng)用程序的請求時,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,啟動所述目標(biāo)應(yīng)用程序。
9.如權(quán)利要求8所述的裝置,還包括 界面切換單元,用于啟動所述目標(biāo)應(yīng)用程序之后,將顯示焦點切換到目標(biāo)應(yīng)用程序的顯示界面。
10.如權(quán)利要求8或9所述的裝置,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序向目標(biāo)應(yīng)用程序傳遞的值,所述目標(biāo)應(yīng)用程序被啟動后,存儲傳遞過來的值或者根據(jù)傳遞過來的值執(zhí)行相應(yīng)的操作。
11.如權(quán)利要求8或9所述的裝置,當(dāng)前應(yīng)用程序也具有定制的URLSchemes字段信息,所述目標(biāo)應(yīng)用程序的URL中還包括當(dāng)前應(yīng)用程序的信息,所述目標(biāo)應(yīng)用程序被啟動后,在目標(biāo)應(yīng)用程序的顯示界面顯示所述當(dāng)前應(yīng)用程序的啟動入口,以便通過該啟動入口返回到所述當(dāng)前應(yīng)用程序。
12.如權(quán)利要求7至9任一項所述的裝置,還包括 判斷單元,用于以目標(biāo)應(yīng)用程序的URL Schemes字段信息為參數(shù),調(diào)用UIApplication類的canOpenURL方法,判斷當(dāng)前操作系統(tǒng)中是否已安裝所述目標(biāo)應(yīng)用程序; 安裝工具調(diào)用單元,用于如果尚未安裝,調(diào)用應(yīng)用程序安裝列表工具,并在所述應(yīng)用程序安裝列表工具中顯示出所述目標(biāo)應(yīng)用程序,以便提示用戶安裝所述目標(biāo)應(yīng)用程序。
全文摘要
本發(fā)明公開了iOS系統(tǒng)中應(yīng)用程序間通信的方法及裝置,用于在當(dāng)前應(yīng)用程序與目標(biāo)應(yīng)用程序之間進(jìn)行消息傳遞,所述目標(biāo)應(yīng)用程序具有定制的統(tǒng)一資源定位符方案URL Schemes字段信息,所述方法包括獲知目標(biāo)應(yīng)用程序的所述URL Schemes字段信息;根據(jù)所述URL Schemes字段信息生成所述目標(biāo)應(yīng)用程序的URL;在當(dāng)前應(yīng)用程序中,以所述目標(biāo)應(yīng)用程序的URL為參數(shù),調(diào)用UIApplication類的openURL方法,向目標(biāo)應(yīng)用程序進(jìn)行消息傳遞。通過本發(fā)明,能夠?qū)崿F(xiàn)在iOS系統(tǒng)中不同應(yīng)用程序間的相互通信。
文檔編號G06F9/54GK103034546SQ20121054839
公開日2013年4月10日 申請日期2012年12月17日 優(yōu)先權(quán)日2012年12月17日
發(fā)明者陳杰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司