iOS 手機上一個項目調啟另一個項目(都已安裝)

1、先自己定義一個自定義協(xié)議,在Info.plist中加URL types節(jié)點。在這個節(jié)點中定義程序所支持的自定義協(xié)議名稱。在調用時,直接調用todolist://這個URL就可以啟用另一個app了

還要在plist中加https的設置

2、在自己的方法中去啟調另一個程序:

- (void)showItemInTaobao4iOS:(NSString *)itemId {

// 構建客戶端協(xié)議的 URL

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"todolist://"]];

// 判斷當前系統(tǒng)是否有安裝url scheme為todolist://的客戶端

if ([[UIApplication sharedApplication] canOpenURL:url]) {

// 如果已經安裝了這個客戶端,就打開客戶端

[[UIApplication sharedApplication] openURL:url];

} else {

//提示你并未安裝這個客戶端

? ? ? ? ? ? }

}

2.1 跳轉到指定的界面

在淘寶客戶端中,支持的 URL 往往是淘寶網站已經有的鏈接,這些鏈接的 QueryString 中所帶的參數往往已經滿足了使用本地代碼顯示內容的需要,但是為了擴展性考慮,就需要添加一些額外的參數,并且與原有 QueryString 中不沖突的參數名稱。通過這些額外的參數,再實現(xiàn)客戶端打開鏈接時更多的自定義行為。

例如,如果在打開特定 URL,進行一些操作后需要再返回原來的程序,就會需要在 URL 中添加類似于 callback 這樣的參數,這樣在客戶端處理完用戶的操作后,可以將用戶操作的結果返回給原來的程序,從而實現(xiàn)程序間的通信。

- (void)buyItemInTaobao4iOS:(NSString *)itemId {

// 構建淘寶客戶端協(xié)議的 URL

NSString *format = @"taobao://item.taobao.com/item.htm?id=%@&_action=buy&_callback=myapp://taobaobuysuccess";

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:format, itemId]];

// 使用淘寶客戶端打開鏈接

[[UIApplication sharedApplication] openURL:url];

}

注意:當前淘寶客戶端并不支持這樣的調用方式,這里僅是一個示例。

當然,在使用這種方式實現(xiàn)程序間通信的時候,需要考慮檢查一下來源 URL 的合法性,防止一些非法的調用造成用戶的損失。


3、傳遞參數 在自定義了 URL scheme 的應用中,app delegate 必須實現(xiàn)以下方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url

sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{

NSLog(@"Calling Application Bundle ID: %@", sourceApplication);

NSLog(@"URL scheme:%@", [url scheme]);

NSLog(@"URL query: %@", [url query]);

return YES;

}


這塊我調啟另一個應用再返回原來的應用采用了參數的返回

參考文章

http://www.cocoachina.com/industry/20140522/8514.html

http://www.cnblogs.com/xiaouisme/archive/2012/03/14/2396006.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • iOS開發(fā)系列--網絡開發(fā) 概覽 大部分應用程序都或多或少會牽扯到網絡開發(fā),例如說新浪微博、微信等,這些應用本身可...
    lichengjin閱讀 4,028評論 2 7
  • [更新日志][1] [1]: https://blog.growingio.com/posts/iOS_chan...
    bmm_yj閱讀 778評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • 網上也有講這塊的,感覺講得都不是很好。而且有一些細節(jié)根本沒有講清楚。這里重寫整理一下相關知識點。 主要內容 URL...
    紙簡書生閱讀 21,102評論 9 92
  • 紅衣飐飐煙塵厚,笙歌曲盡續(xù)僝僽。 酴釄香散舉杯酒,花火飛燼鋪似繡。
    H3LL0PANDA閱讀 223評論 0 0

友情鏈接更多精彩內容