ios开发中,如何在自己的应用调用另外一个应用
最近學習了一下sina微博的sdk,了解并猜測了一下它的sso機制(客戶端的),開始比較奇怪demo中是怎么調用起sina客戶端的。其實ios的機制來講,調起一個其他的app比較簡單:
這個其他的app,也分為兩種,一種是我們開發者開發的,另外一種,是系統的app.
(1)先說一下從一個app中調用我們開發者開發的app
我們自己的app,我簡稱appA,要調用的app我簡稱appB
過程如下:appA->appB appB->appA 并通過URL Scheme回傳給appA一個參數。(這個過程,其實類似我們的demo,調起sina微博客戶端,微博客戶端經過處理之后,又返回到我們的demo過程)
需要做的工作步驟:
a) appA中,需要app(工程名稱)-info.plist這個文件,這個文件一般在Supporting Files文件夾下,實在找不到就搜.plist文件吧,肯定有的。找到之后,在Information Property List下創建一個項, 右鍵,選擇Add Row,找到URL types,創建之。然后再選擇item0,繼續Add Row,創建一個URL Schemes,在其下級的item里面,設置appA本身的URL Scheme.設置完畢之后,應該如下圖所示:
,這個url scheme,說白了,就是appA的一個名字,用來給別的app識別的。假設appA的url scheme:App58ForIphone。
b)appB,也要做一個URL Schemes,方法參照a),假設appB的url scheme:58pinche
c)好了,appA和appB都有名字了,那么怎么識別(調起)它們呢,非常簡單,
appA->appB
NSURL * pincheUrl = [NSURL URLWithString:@"58pinche://?key=value"];
[[UIApplicationsharedApplication] openURL:pincheUrl];
appB->appA
NSURL * appBUrl = [NSURL URLWithString:@"App58ForIphone://?key=value"];
[[UIApplicationsharedApplication] openURL:pincheUrl];
d)如何傳參以及接收參數呢,通過URL Scheme規則(規則您自己定,最簡單的,就是類似上面的key value形勢)
接收并處理參數是根據ios框架在appdelegate提供的兩個回調函數:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
在里面parse URL Scheme就可以了(制定好的URL Scheme非常重要)
(2) 如何調用系統的app呢,比如說短信,電話以及商店中的應用好評等等
結論:統統使用OpenURL
至于如何使用:請參見
https://developer.apple.com/library/ios/
所介紹的URL Schemes
下面隨便舉幾個例子:
1).如果想要在程序中直接連接到app store的itunes而不進http的情況(進web頁面,直接加http地址)。
NSString *str = [NSStringstringWithFormat:@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=404612543"];
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:str]];
2).調用 自帶mail?
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"mailto://admin@hzlzh.com"]];
3).調用 電話phone?
[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"tel://8008808888"]];?
4).調用 SMS
?[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];?
5).調用自帶 瀏覽器 safari
?[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"http://www.hzlzh.com"]];
6).調用 Remote
?[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"remote://fff"]];
只要心是晴朗的,人生就沒有雨天
總結
以上是生活随笔為你收集整理的ios开发中,如何在自己的应用调用另外一个应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac下的Pycharm教程
- 下一篇: BCZM : 1.13