麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

iOS開(kāi)發(fā)-應(yīng)用之間的跳轉(zhuǎn)及通信

2019-11-14 18:09:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

簡(jiǎn)介

我們接下來(lái)將要實(shí)現(xiàn)應(yīng)用程序之間的跳轉(zhuǎn)及通訊?,F(xiàn)在手機(jī)開(kāi)發(fā)中,很多時(shí)候我們都需要在應(yīng)用內(nèi)跳轉(zhuǎn)到別的應(yīng)用中,這個(gè)是很常見(jiàn)的。

為此,我們首先需要準(zhǔn)備兩個(gè)項(xiàng)目applicationOneApplicationTwo。

應(yīng)用間的簡(jiǎn)單跳轉(zhuǎn)

ApplicationOne應(yīng)用跳轉(zhuǎn)到ApplicationTwo應(yīng)用

我們需要先創(chuàng)建在ApplicationTwo項(xiàng)目里設(shè)置URL Types協(xié)議,這里我設(shè)置為GC,如下所示

ApplicationOne應(yīng)用添加事件

@IBAction func openApplication() {	// 1    let urlSting = "GC://"    // 2    if let url = NSURL(string: urlSting) {	    // 3        let application = UIApplication.sharedApplication()        // 4        if application.canOpenURL(url) {        // 5            application.openURL(url)        }    }}
  • 1: 創(chuàng)建urlString字符串
  • 2: 利用urlString字符串創(chuàng)建真正的url,并檢測(cè)url是否有用
  • 3: 獲得UIApplication實(shí)例
  • 4: 檢測(cè)是否能夠打開(kāi)此url
  • 5: 打開(kāi)url,在這里即為我們的應(yīng)用跳轉(zhuǎn)

需要注意的是,協(xié)議開(kāi)頭必須要是完整的,即為****://

應(yīng)用間的傳值跳轉(zhuǎn)

實(shí)現(xiàn)方式很簡(jiǎn)單,我們只需要在url協(xié)議里補(bǔ)充參數(shù)就可以了,比如我現(xiàn)在傳一個(gè)字符串GarveyCalvin

現(xiàn)在事件的代碼是這樣的

@IBAction func openApplication() {    let urlSting = "GC://GarveyCalvin"    if let url = NSURL(string: urlSting) {        let application = UIApplication.sharedApplication()        if application.canOpenURL(url) {            application.openURL(url)        }    }}

你可以在協(xié)議后補(bǔ)充n個(gè)參數(shù),只需要雙方都能解析得到就行,具體的協(xié)議規(guī)則自行商議

然后在ApplicationTwo應(yīng)用的AppDelegate文件,我們需要實(shí)現(xiàn)如下方法去接收其它應(yīng)用傳進(jìn)來(lái)的參數(shù)

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {let newUrlHost: NSString = url.absoluteString ?? ""let range = newUrlHost.rangeOfString("//")    if range.length != NSNotFound {    let params = newUrlHost.substringFromIndex(range.length)    UIAlertView(title: "params is /(params)", message: nil, delegate: nil, cancelButtonTitle: "Confirm").show()} else {    UIAlertView(title: "haven't params", message: nil, delegate: nil, cancelButtonTitle: "Confirm").show()}    return false}

應(yīng)用間的反向跳轉(zhuǎn)

我們要實(shí)現(xiàn)的是,從ApplicationOne跳轉(zhuǎn)到ApplicationTwo應(yīng)用,再?gòu)?code>ApplicationTwo跳轉(zhuǎn)回ApplicationOne應(yīng)用里。

具體的實(shí)現(xiàn)步驟如下:

  • 我們需要在ApplicationOne項(xiàng)目中添加URL Types協(xié)議,具體看文章的上方,我們剛剛才做過(guò)。
  • 為了實(shí)現(xiàn)應(yīng)用間的反轉(zhuǎn)跳轉(zhuǎn),我們必須讓ApplicationTwo應(yīng)用知道是從哪里跳轉(zhuǎn)的,因此我們可以在ApplicationOneurl跳轉(zhuǎn)事件把自身的URL Types協(xié)議傳遞給ApplicationTwo應(yīng)用。像這樣GC://GarveyCalvin&GCFirst
  • 這樣我們就能在ApplicationTwo應(yīng)用的application(_:openURL: sourceApplication:annotation:)方法中獲取到ApplicationOne的協(xié)議,我們保存它,等到需要反向跳轉(zhuǎn)的時(shí)候就可以使用它來(lái)進(jìn)行跳轉(zhuǎn)了。

Download

你們可以通過(guò)這個(gè)Git的鏈接去下載本文章所使用的完整項(xiàng)目源碼。(ApplicationJumpAndSentValue).

參考文章


iOS開(kāi)發(fā)拓展篇—應(yīng)用之間的跳轉(zhuǎn)和數(shù)據(jù)傳遞

iOS應(yīng)用程序開(kāi)發(fā)之應(yīng)用間的跳轉(zhuǎn)





博文作者:GarveyCalvin

博文出處:http://www.companysz.com/GarveyCalvin/

本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但須保留此段聲明,并給出原文鏈接,謝謝合作!


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本成人高清视频 | 一级毛片播放 | 最新中文在线视频 | 精品亚洲一 | 国产妞干网 | 久久久久久久99 | 欧美成人午夜一区二区三区 | 国产成人午夜高潮毛片 | 一道本不卡一区 | 欧美一区二区片 | 国产 日韩 亚洲 欧美 | 久久视频精品 | 毛片a级毛片免费播放100 | 久久精品视频在线免费观看 | av电影在线网 | 黄色av免费网站 | 欧美日韩高清在线观看 | 亚洲第五色综合网 | 精品二区在线观看 | 斗破苍穹在线免费 | cosplay裸体福利写真 | 销魂美女一区二区 | 国产高潮好爽受不了了夜色 | 久久人人爽人人爽人人片av高请 | 怦然心动50免费完整版 | 一区二区三区四区视频在线观看 | 日本a在线观看 | 亚洲成人免费电影 | 亚洲欧美aⅴ| 成人在线视频一区 | 欧美va亚洲| 成人mm视频在线观看 | 国产视频在线免费观看 | 久久毛片 | 91精品国产日韩91久久久久久360 | 日韩欧美色综合 | 黄色影院网站 | 97色在线观看免费视频 | 国产毛片毛片 | 日本欧美中文字幕 | 久久久成人免费视频 |