早上和UI剛談到這個需求,然后自己試了一下,發現還是蠻簡單的,記錄一下:
思路分析:
iOS內應用之間跳轉都會用到 URL Schemes這個東西,簡單的講,這個就是用來定義app身份的一個id識別,這里定義了之后,手機運行過這個app之后,會在系統內部記錄下這里的身份識別,下次,其他app想訪問該app,只要請求那里定義的URL Schemes,手機自己就能找到這個app,從而實現跳轉。。。
好了,代碼測試如下:
1、在項目里,Info最下端,找到URL Types,add一個新的Schemes:
這里的幾個參數最好都填一下,但是URL Schemes是必填的。
info.plist添加說明
2、在AppDelegate里的 handleOpenURL 代理方法捕獲跳轉過來的監聽,或者拿取傳遞的參數。
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ if (!url) { return NO; } NSString *urlStr = url.absoluteString; NSLog(@"handleOpenURL:%@",urlStr); return YES; }
3、打開模擬器的Safari,在地址欄輸入: TestOC://
格式為:URL Schemes : // 3部分組成。
點擊Open,就會跳轉我的應用了,並且走到了handleOpenURL方法,並打印出了url。
這里,如果我想傳遞一些參數,該怎么做呢?
原理一樣的:在 ://之后加上一段參數即可。
只需要這樣寫:
TestOC://userId:123&pwd:123
然后,我們再截取處理就可以了。
補充一下:如果想傳遞圖片,可以利用系統的剪切板:UIPasteboard 很方便哦
PS:這里我為了省事,直接在地址欄輸入的,正常情況下,在頁面里,一般用link或button之類的,帶上url就行了,使用原理還是一樣的。
而且,這里瀏覽器其他也是一樣的,用Safari只是為了舉例。
大家快試試吧~~